@spacemolt/lib 13.1.0 → 13.2.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.
@@ -155,13 +155,218 @@ export type AnalysisStep = {
155
155
  recipe_id: string;
156
156
  };
157
157
  export type AnalyzeMarketResponse = {
158
+ /**
159
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
160
+ */
158
161
  auto_docked?: boolean;
162
+ /**
163
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
164
+ */
159
165
  auto_undocked?: boolean;
160
166
  insights: Array<MarketInsight>;
161
167
  message: string;
162
168
  skill_level: number;
163
169
  station: string;
164
170
  };
171
+ export type ArenaAcceptResponse = {
172
+ /**
173
+ * Always accept.
174
+ */
175
+ action: 'accept';
176
+ /**
177
+ * ID of the arena battle. Use the battle command and get_battle_status to fight it.
178
+ */
179
+ battle_id: string;
180
+ /**
181
+ * Human-readable confirmation.
182
+ */
183
+ message: string;
184
+ /**
185
+ * The challenger's battle side ID.
186
+ */
187
+ opponent_side: number;
188
+ /**
189
+ * Every pilot in the match, both sides, at the moment it started.
190
+ */
191
+ participants: Array<ArenaParticipantInfo>;
192
+ /**
193
+ * Your battle side ID.
194
+ */
195
+ your_side: number;
196
+ };
197
+ export type ArenaActionResponse = {
198
+ /**
199
+ * The action that was performed.
200
+ */
201
+ action: 'decline' | 'cancel';
202
+ /**
203
+ * ID of the challenge that was removed.
204
+ */
205
+ challenge_id: string;
206
+ /**
207
+ * Human-readable confirmation.
208
+ */
209
+ message: string;
210
+ };
211
+ export type ArenaChallengeInfo = {
212
+ /**
213
+ * ID of the pending challenge.
214
+ */
215
+ challenge_id: string;
216
+ /**
217
+ * Server tick after which the challenge lapses.
218
+ */
219
+ expires_tick: number;
220
+ /**
221
+ * Maximum ships per side. 0 means every eligible fleet member joins.
222
+ */
223
+ max_side_size: number;
224
+ /**
225
+ * Player ID of the other party.
226
+ */
227
+ opponent_id: string;
228
+ /**
229
+ * Username of the other party.
230
+ */
231
+ opponent_name: string;
232
+ /**
233
+ * Arena POI the match will be fought at.
234
+ */
235
+ poi_id: string;
236
+ };
237
+ export type ArenaChallengeResponse = {
238
+ /**
239
+ * Always challenge.
240
+ */
241
+ action: 'challenge';
242
+ /**
243
+ * ID of the pending challenge. Only one challenge per player is pending at a time.
244
+ */
245
+ challenge_id: string;
246
+ /**
247
+ * Server tick after which the challenge lapses if not accepted.
248
+ */
249
+ expires_tick: number;
250
+ /**
251
+ * Maximum ships per side. 0 means every eligible fleet member joins, 1 means a solo duel.
252
+ */
253
+ max_side_size: number;
254
+ /**
255
+ * Human-readable confirmation.
256
+ */
257
+ message: string;
258
+ /**
259
+ * Arena POI the match will be fought at. Both sides must stay undocked here until the challenge is answered.
260
+ */
261
+ poi_id: string;
262
+ /**
263
+ * Player ID of the pilot you challenged.
264
+ */
265
+ target_id: string;
266
+ /**
267
+ * Username of the pilot you challenged.
268
+ */
269
+ target_name: string;
270
+ };
271
+ export type ArenaDroneEntry = {
272
+ hull: number;
273
+ owner_id: string;
274
+ status: string;
275
+ };
276
+ export type ArenaParticipantInfo = {
277
+ /**
278
+ * Player ID.
279
+ */
280
+ player_id: string;
281
+ /**
282
+ * Battle side the pilot fights on. Fleet members share their leader's side.
283
+ */
284
+ side_id: number;
285
+ /**
286
+ * Username.
287
+ */
288
+ username: string;
289
+ };
290
+ export type ArenaResponse = ({
291
+ action: 'challenge';
292
+ } & ArenaChallengeResponse) | ({
293
+ action: 'accept';
294
+ } & ArenaAcceptResponse) | ({
295
+ action: 'cancel' | 'decline';
296
+ } & ArenaActionResponse) | ({
297
+ action: 'status';
298
+ } & ArenaStatusResponse) | ({
299
+ action: 'help';
300
+ } & CommandHelpResponse);
301
+ export type ArenaRestoreState = {
302
+ battle_id: string;
303
+ drones?: {
304
+ [key: string]: ArenaDroneEntry;
305
+ };
306
+ ships?: {
307
+ [key: string]: ArenaShipEntry;
308
+ };
309
+ };
310
+ export type ArenaShipEntry = {
311
+ armor: number;
312
+ hull: number;
313
+ max_hull: number;
314
+ max_shield: number;
315
+ personnel: PersonnelState;
316
+ personnel_recovery_tick?: number;
317
+ player_id: string;
318
+ shield: number;
319
+ };
320
+ export type ArenaStatusResponse = {
321
+ /**
322
+ * Always status.
323
+ */
324
+ action: 'status';
325
+ /**
326
+ * Lifetime opponents and drones you knocked out in the arena.
327
+ */
328
+ arena_knockouts: number;
329
+ /**
330
+ * Lifetime arena matches your side lost. Stalemates count for neither.
331
+ */
332
+ arena_losses: number;
333
+ /**
334
+ * Lifetime arena matches your side won.
335
+ */
336
+ arena_wins: number;
337
+ /**
338
+ * True when your current POI hosts arena matches.
339
+ */
340
+ at_arena: boolean;
341
+ /**
342
+ * ID of the arena battle you are fighting in. Omitted when you are not in one.
343
+ */
344
+ battle_id?: string;
345
+ /**
346
+ * A challenge waiting for your answer. Omitted when none is pending.
347
+ */
348
+ incoming?: ArenaChallengeInfo;
349
+ /**
350
+ * A challenge you issued that is still unanswered. Omitted when none is pending.
351
+ */
352
+ outgoing?: ArenaChallengeInfo;
353
+ /**
354
+ * Daily arena XP limit per skill.
355
+ */
356
+ xp_cap_per_skill: number;
357
+ /**
358
+ * Combat XP earned from arena fights today (UTC), keyed by skill ID. Empty when none. Each skill stops earning arena XP at xp_cap_per_skill until the next UTC day.
359
+ */
360
+ xp_used_today: {
361
+ [key: string]: number;
362
+ };
363
+ };
364
+ export type ArenaXpLedger = {
365
+ by_skill: {
366
+ [key: string]: number;
367
+ };
368
+ day: string;
369
+ };
165
370
  export type AttackLogEntry = {
166
371
  after_def_buff?: number;
167
372
  after_stance?: number;
@@ -211,7 +416,13 @@ export type AttackLogEntry = {
211
416
  };
212
417
  export type AttackNpcResponse = {
213
418
  action: 'attack';
419
+ /**
420
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
421
+ */
214
422
  auto_docked?: boolean;
423
+ /**
424
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
425
+ */
215
426
  auto_undocked?: boolean;
216
427
  kind: 'npc';
217
428
  target: string;
@@ -224,7 +435,13 @@ export type AttackNpcResponse = {
224
435
  };
225
436
  export type AttackPlayerResponse = {
226
437
  action: 'attack';
438
+ /**
439
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
440
+ */
227
441
  auto_docked?: boolean;
442
+ /**
443
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
444
+ */
228
445
  auto_undocked?: boolean;
229
446
  battle_id: string;
230
447
  kind: 'player';
@@ -346,7 +563,7 @@ export type BaseCostResponse = {
346
563
  };
347
564
  export type BattleCombatState = {
348
565
  /**
349
- * Whether your ship can make escape progress. False when warp-disrupted or when no fit crew can operate the ship. True still requires flee stance and the required escape ticks.
566
+ * Whether your ship can make escape progress. False when the ship is warp-disrupted (warp_disrupted), intercepted by a latched-on boarder that out-runs it (intercepted), or has no fit crew to operate it (incapacitated). Those three are independent and can hold together, so read each boolean rather than inferring a single cause from this field. True still requires flee stance and the required escape ticks.
350
567
  */
351
568
  can_escape: boolean;
352
569
  /**
@@ -366,13 +583,29 @@ export type BattleCombatState = {
366
583
  */
367
584
  flee_counter: number;
368
585
  /**
369
- * Flee ticks needed to escape under current conditions (slower-than-pursuer and webbing raise it). Omitted when warp-disrupted because escape is impossible until the tackle is removed.
586
+ * Flee ticks needed to escape under current conditions (slower-than-pursuer and webbing raise it). Omitted while escape progress is blocked — by warp disruption or by a boarding intercept alike — so its absence does not identify which. Read warp_disrupted and intercepted for that.
370
587
  */
371
588
  flee_required?: number;
372
589
  /**
373
590
  * Always present in the requesting participant's combat_state. True means no fit crew can operate your ship; false means personnel can operate it. Independent of warp_disrupted: both may be true. When true can_escape is false and the ship cannot fire or move. Not included for observers or other participants. Injured crew may recover automatically while the ship remains intact and uncaptured; ship status reports the recovery timing.
374
591
  */
375
592
  incapacitated: boolean;
593
+ /**
594
+ * A boarding pursuer that has latched on and out-runs your ship is cancelling your retreat and flee movement. Independent of warp_disrupted and incapacitated: any combination of the three can be true at once, and each blocks escape on its own. Match or beat its effective speed, or destroy it, to resume escape progress. interceptor_id names the pursuer.
595
+ */
596
+ intercepted: boolean;
597
+ /**
598
+ * Your own boarding attempt is out-running its target, cancelling that target's retreat and flee movement. This is the boarder's side of intercepted; combat_state is self-only and get_battle_status does not publish another ship's stance or speed, so this is the only way to confirm your pursuit is holding. intercepting_target_id names the ship.
599
+ */
600
+ intercepting: boolean;
601
+ /**
602
+ * player_id of the ship your boarding attempt is out-running, matching a participant row in the same get_battle_status response. Present exactly when intercepting is true.
603
+ */
604
+ intercepting_target_id?: string;
605
+ /**
606
+ * player_id of the boarder intercepting you, matching a participant row in the same get_battle_status response. Present exactly when intercepted is true. At most one hull can intercept you: a ship already in a boarding link cannot open a second one.
607
+ */
608
+ interceptor_id?: string;
376
609
  /**
377
610
  * Largest zone distance any fitted weapon can fire against your selected target after its targeting-range reductions. A target whose zone_distance exceeds this is out of range.
378
611
  */
@@ -404,7 +637,7 @@ export type BattleEndLogEntry = {
404
637
  category: string;
405
638
  duration: number;
406
639
  /**
407
- * How the battle ended. victory means one side survived and took a kill. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle before either side won. The WebSocket battle_ended frame calls this same field reason.
640
+ * How the battle ended. victory means one side survived and destroyed or captured an opponent. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle before either side won. The WebSocket battle_ended frame calls this same field reason.
408
641
  */
409
642
  outcome: 'victory' | 'stalemate' | 'mutual_destruction' | 'interrupted';
410
643
  participant_names?: Array<string>;
@@ -429,6 +662,8 @@ export type BattleEndedParticipantInfo = {
429
662
  username: string;
430
663
  };
431
664
  export type BattleLogEntry = {
665
+ arena?: boolean;
666
+ arena_restore?: ArenaRestoreState;
432
667
  attacks?: Array<AttackLogEntry>;
433
668
  autopilot?: Array<AutoPilotLogEntry>;
434
669
  battle_ended?: BattleEndLogEntry;
@@ -504,11 +739,11 @@ export type BattleParticipant = {
504
739
  export type BattleParticipantInfo = {
505
740
  hull_pct?: number;
506
741
  /**
507
- * True for server-controlled combatants including pirates
742
+ * True for server-controlled combatants including pirates, police, drones, creatures, stations, and intact prizes.
508
743
  */
509
744
  is_npc?: boolean;
510
745
  /**
511
- * Combatant kind: player
746
+ * Combatant kind: player, pirate, police, drone, creature, station, prize, or npc. Prize identifies an autonomously controlled intact captured ship.
512
747
  */
513
748
  kind?: string;
514
749
  player_id: string;
@@ -521,18 +756,36 @@ export type BattleParticipantInfo = {
521
756
  zone: string;
522
757
  };
523
758
  export type BattleResponse = {
759
+ /**
760
+ * The battle action the request asked for. It is echoed back unchanged and tells you which of the optional fields below to expect.
761
+ */
524
762
  action: 'advance' | 'retreat' | 'stance' | 'target' | 'engage' | 'self_destruct';
763
+ /**
764
+ * Battle the command applied to. Omitted when the command did not resolve against a specific battle.
765
+ */
525
766
  battle_id?: string;
767
+ /**
768
+ * Marines you committed to the boarding attempt, echoed back. This is the request, not the number that latched: how many actually deploy depends on your fit complement when the latch succeeds. Present on a board stance only. Re-issuing board against a target you are already boarding leaves the original commitment unchanged and echoes that value.
769
+ */
526
770
  marines_requested?: number;
771
+ /**
772
+ * Human-readable outcome of the command. Boarding and self-destruct are queued rather than immediate, so this describes what was accepted; watch get_battle_status and the battle log for what actually happens.
773
+ */
527
774
  message: string;
528
775
  operation_id?: string;
529
776
  phase?: string;
530
777
  progress?: string;
778
+ /**
779
+ * Ticks remaining on an in-battle self-destruct countdown. The in-battle countdown is free and is not the escalating-fee self_destruct command; starting it again does not reset or extend it. Omitted when no countdown is running.
780
+ */
531
781
  self_destruct_countdown?: number;
532
782
  /**
533
- * Resulting combat stance: fire/evade/brace/flee/board
783
+ * Combat stance now in effect. board is exclusive and non-instant: it suppresses your own weapons, closes on the target and retries the latch until capture or withdrawal, and switching away from it begins a multi-tick withdrawal that costs marines — the stance you asked for only applies once that finishes. Present on action=stance.
784
+ */
785
+ stance?: 'fire' | 'evade' | 'brace' | 'flee' | 'board';
786
+ /**
787
+ * Combatant this command aimed at — the ship being boarded on a board stance, or your new focus-fire target on action=target. Present on those actions only.
534
788
  */
535
- stance?: string;
536
789
  target_id?: string;
537
790
  };
538
791
  export type BattleSelfDestructState = {
@@ -568,7 +821,7 @@ export type BattleSummaryResponse = {
568
821
  has_station: boolean;
569
822
  origin_poi?: string;
570
823
  /**
571
- * How the battle ended. victory means one side survived and took a kill. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle before either side won. Graceful shutdown emits a battle_ended frame; crash-recovered REST summaries do not fabricate one. Null while status is active. The WebSocket battle_ended frame calls this same field reason.
824
+ * How the battle ended. victory means one side survived and destroyed or captured an opponent. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle before either side won. Graceful shutdown emits a battle_ended frame; crash-recovered REST summaries do not fabricate one. Null while status is active. The WebSocket battle_ended frame calls this same field reason.
572
825
  */
573
826
  outcome: string;
574
827
  participant_count: number;
@@ -616,25 +869,79 @@ export type BerthsView = {
616
869
  first: BerthCount;
617
870
  };
618
871
  export type BoardingPublicStatus = {
872
+ /**
873
+ * Combatant driving the operation — the boarder for a boarding row, or the ship running the countdown for a self_destruct row. Matches a participant player_id in the same get_battle_status response. Omitted only when the actor is no longer resolvable.
874
+ */
619
875
  attacker_id?: string;
876
+ /**
877
+ * Stable identity for this operation for as long as it is live. A boarding operation's id is opaque; an in-battle self-destruct row instead uses the synthetic form self_destruct:<ship_id>. Rows disappear from the list once the operation resolves — the battle log keeps the history.
878
+ */
620
879
  operation_id: string;
621
- phase: string;
622
- progress?: string;
880
+ /**
881
+ * What the operation is doing now. latching: the boarder is closing and trying to attach. assault: marines are aboard and fighting. withdrawing: the boarder is disengaging, which takes several ticks and costs marines. self_destruct marks a countdown row rather than a boarding operation, and is the only value that carries self_destruct_countdown. A resolved operation is removed from the list rather than reported.
882
+ */
883
+ phase: 'latching' | 'assault' | 'withdrawing' | 'self_destruct';
884
+ /**
885
+ * Coarse observable state for onlookers. Derived from phase, never a percentage — exact latch and assault progress stay private to the two combatants. closing pairs with latching, attached with assault, withdrawing with withdrawing, and countdown with self_destruct.
886
+ */
887
+ progress?: 'closing' | 'attached' | 'withdrawing' | 'countdown';
888
+ /**
889
+ * Ticks remaining until the ship detonates. Present only on phase=self_destruct rows and omitted everywhere else. Counts down one per tick; at zero the hull explodes, damaging an attached boarder.
890
+ */
623
891
  self_destruct_countdown?: number;
892
+ /**
893
+ * Combatant being boarded. Matches a participant player_id in the same response. Always omitted on self_destruct rows, which have no target.
894
+ */
624
895
  target_id?: string;
625
896
  };
626
897
  export type BoardingStateLogEntry = {
898
+ /**
899
+ * Combatant whose action produced this row — the boarder on boarding rows, the detonating ship on self_destruct rows. Named actor_id rather than attacker_id because a defender's self-destruct is also an action.
900
+ */
627
901
  actor_id?: string;
902
+ /**
903
+ * True when the boarding party took losses this round. Omitted when false. Qualitative only: the number of marines lost is private.
904
+ */
628
905
  attacker_casualties?: boolean;
906
+ /**
907
+ * True when this round hurt either side. Exactly the OR of attacker_casualties and defender_casualties, offered so a client can filter bloody rounds without checking both. Omitted when false. Never reports how many — counts stay private to each side.
908
+ */
629
909
  casualties_occurred?: boolean;
910
+ /**
911
+ * True when the defending complement took losses this round. Omitted when false. Qualitative only: the number lost is private.
912
+ */
630
913
  defender_casualties?: boolean;
914
+ /**
915
+ * True when hull_damage finished the counterpart ship off. Present only alongside hull_damage on a self_destruct_attached_blast row; omitted when false.
916
+ */
631
917
  destroyed?: boolean;
918
+ /**
919
+ * Observable boarding transition. Terminal values include capture_ready; plundered; withdrawn; attacker_destroyed; attacker_incapacitated; target_destroyed; target_self_destructed; and restart_canceled. plundered means pirates removed eligible cargo and then disengaged without taking the hull.
920
+ */
632
921
  event: string;
922
+ /**
923
+ * Hull points the blast took off the counterpart ship. Present only on a self_destruct_attached_blast row — a ship detonating while latched to another — and omitted for every other event. Capped at the counterpart's remaining hull.
924
+ */
633
925
  hull_damage?: number;
926
+ /**
927
+ * The operation this transition belongs to, matching operation_id in get_battle_status while the operation was live. Empty on rows emitted for an operation that could no longer be resolved.
928
+ */
634
929
  operation_id: string;
635
- phase: string;
930
+ /**
931
+ * Phase the operation was in when this transition happened. Carries the same meanings as the get_battle_status phase, plus resolved, which appears here for terminal rows because the log outlives the operation. self_destruct marks a countdown row rather than a boarding operation.
932
+ */
933
+ phase: 'latching' | 'assault' | 'withdrawing' | 'resolved' | 'self_destruct';
934
+ /**
935
+ * Why the event fired, when the event alone is ambiguous. Present today only on self_destruct_canceled, where battle_ended distinguishes a countdown cleared because combat finished from one the pilot aborted. Omitted otherwise.
936
+ */
636
937
  reason?: string;
938
+ /**
939
+ * Ticks that remained on the countdown when this row was written. Present on self_destruct rows that report a live countdown and omitted elsewhere, including on cancellation.
940
+ */
637
941
  self_destruct_countdown?: number;
942
+ /**
943
+ * Combatant on the receiving end. Omitted when the transition has no counterpart, including most self_destruct rows.
944
+ */
638
945
  target_id?: string;
639
946
  };
640
947
  export type BrowseShipsResponse = {
@@ -645,7 +952,13 @@ export type BrowseShipsResponse = {
645
952
  listings: Array<ShipListing>;
646
953
  };
647
954
  export type BuildBaseResponse = {
955
+ /**
956
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
957
+ */
648
958
  auto_docked?: boolean;
959
+ /**
960
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
961
+ */
649
962
  auto_undocked?: boolean;
650
963
  base_id: string;
651
964
  fee_paid: number;
@@ -692,7 +1005,13 @@ export type BulkCancelOrderResult = {
692
1005
  };
693
1006
  export type BulkCancelOrdersResponse = {
694
1007
  action: 'cancel_order';
1008
+ /**
1009
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1010
+ */
695
1011
  auto_docked?: boolean;
1012
+ /**
1013
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1014
+ */
696
1015
  auto_undocked?: boolean;
697
1016
  kind: 'bulk';
698
1017
  mode: 'bulk';
@@ -706,7 +1025,13 @@ export type BulkCancelReturns = {
706
1025
  };
707
1026
  export type BulkCraftResponse = {
708
1027
  action: 'craft' | 'recycle';
1028
+ /**
1029
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1030
+ */
709
1031
  auto_docked?: boolean;
1032
+ /**
1033
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1034
+ */
710
1035
  auto_undocked?: boolean;
711
1036
  kind: 'bulk_craft';
712
1037
  mode: 'bulk';
@@ -730,7 +1055,13 @@ export type BulkCraftResult = {
730
1055
  };
731
1056
  export type BulkCreateBuyOrdersResponse = {
732
1057
  action: 'create_buy_order';
1058
+ /**
1059
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1060
+ */
733
1061
  auto_docked?: boolean;
1062
+ /**
1063
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1064
+ */
734
1065
  auto_undocked?: boolean;
735
1066
  kind: 'bulk';
736
1067
  mode: 'bulk';
@@ -739,7 +1070,13 @@ export type BulkCreateBuyOrdersResponse = {
739
1070
  };
740
1071
  export type BulkCreateSellOrdersResponse = {
741
1072
  action: 'create_sell_order';
1073
+ /**
1074
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1075
+ */
742
1076
  auto_docked?: boolean;
1077
+ /**
1078
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1079
+ */
743
1080
  auto_undocked?: boolean;
744
1081
  kind: 'bulk';
745
1082
  mode: 'bulk';
@@ -768,7 +1105,13 @@ export type BulkFactionBuyOrderResult = {
768
1105
  };
769
1106
  export type BulkFactionCreateBuyOrdersResponse = {
770
1107
  action: 'faction_create_buy_order';
1108
+ /**
1109
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1110
+ */
771
1111
  auto_docked?: boolean;
1112
+ /**
1113
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1114
+ */
772
1115
  auto_undocked?: boolean;
773
1116
  kind: 'bulk';
774
1117
  mode: 'bulk';
@@ -777,7 +1120,13 @@ export type BulkFactionCreateBuyOrdersResponse = {
777
1120
  };
778
1121
  export type BulkFactionCreateSellOrdersResponse = {
779
1122
  action: 'faction_create_sell_order';
1123
+ /**
1124
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1125
+ */
780
1126
  auto_docked?: boolean;
1127
+ /**
1128
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1129
+ */
781
1130
  auto_undocked?: boolean;
782
1131
  kind: 'bulk';
783
1132
  mode: 'bulk';
@@ -804,7 +1153,13 @@ export type BulkFactionSellOrderResult = {
804
1153
  };
805
1154
  export type BulkJobCancelResponse = {
806
1155
  action: 'job_cancel';
1156
+ /**
1157
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1158
+ */
807
1159
  auto_docked?: boolean;
1160
+ /**
1161
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1162
+ */
808
1163
  auto_undocked?: boolean;
809
1164
  kind: 'bulk_cancel';
810
1165
  message: string;
@@ -825,7 +1180,13 @@ export type BulkModifyOrderResult = {
825
1180
  };
826
1181
  export type BulkModifyOrdersResponse = {
827
1182
  action: 'modify_order';
1183
+ /**
1184
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1185
+ */
828
1186
  auto_docked?: boolean;
1187
+ /**
1188
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1189
+ */
829
1190
  auto_undocked?: boolean;
830
1191
  kind: 'bulk';
831
1192
  mode: 'bulk';
@@ -871,7 +1232,13 @@ export type BulkStorageItemResult = {
871
1232
  };
872
1233
  export type BulkStorageResponse = {
873
1234
  action: 'bulk_deposit' | 'bulk_withdraw' | 'bulk_transfer';
1235
+ /**
1236
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1237
+ */
874
1238
  auto_docked?: boolean;
1239
+ /**
1240
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1241
+ */
875
1242
  auto_undocked?: boolean;
876
1243
  bucket?: string;
877
1244
  bucket_id?: string;
@@ -899,7 +1266,13 @@ export type BurnLogEntry = {
899
1266
  ticks_remaining: number;
900
1267
  };
901
1268
  export type BuyInsuranceResponse = {
1269
+ /**
1270
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1271
+ */
902
1272
  auto_docked?: boolean;
1273
+ /**
1274
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1275
+ */
903
1276
  auto_undocked?: boolean;
904
1277
  coverage: number;
905
1278
  expires_at: string;
@@ -911,7 +1284,13 @@ export type BuyInsuranceResponse = {
911
1284
  risk_score?: number;
912
1285
  };
913
1286
  export type BuyListedShipResponse = {
1287
+ /**
1288
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1289
+ */
914
1290
  auto_docked?: boolean;
1291
+ /**
1292
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1293
+ */
915
1294
  auto_undocked?: boolean;
916
1295
  class_id: string;
917
1296
  credits_left: number;
@@ -922,8 +1301,14 @@ export type BuyListedShipResponse = {
922
1301
  };
923
1302
  export type BuyResponse = {
924
1303
  action: string;
1304
+ /**
1305
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1306
+ */
925
1307
  auto_docked?: boolean;
926
1308
  auto_listed?: AutoListedOrder;
1309
+ /**
1310
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1311
+ */
927
1312
  auto_undocked?: boolean;
928
1313
  delivered_to_cargo?: number;
929
1314
  delivered_to_storage?: number;
@@ -951,7 +1336,13 @@ export type CancelOrderCommandResponse = ({
951
1336
  } & BulkCancelOrdersResponse);
952
1337
  export type CancelOrderResponse = {
953
1338
  action: 'cancel_order';
1339
+ /**
1340
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1341
+ */
954
1342
  auto_docked?: boolean;
1343
+ /**
1344
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1345
+ */
955
1346
  auto_undocked?: boolean;
956
1347
  delivered_to?: string;
957
1348
  faction_order?: boolean;
@@ -1008,6 +1399,10 @@ export type CaptainsLogListResponse = {
1008
1399
  export type CaptureLogEntry = {
1009
1400
  boarding_operation_id: string;
1010
1401
  captor_id: string;
1402
+ /**
1403
+ * Kind of combat actor identified by captor_id. Present on newly recorded captures; omitted on historical rows created before captor provenance was recorded.
1404
+ */
1405
+ captor_kind?: 'player' | 'pirate' | 'npc';
1011
1406
  captor_username: string;
1012
1407
  former_owner_id: string;
1013
1408
  former_owner_username: string;
@@ -1247,15 +1642,42 @@ export type ClaimInsuranceResponse = {
1247
1642
  policies: Array<InsurancePolicy>;
1248
1643
  };
1249
1644
  export type ClaimPrizeResponse = {
1645
+ /**
1646
+ * Fit crew committed to fly the prize home. They leave your available complement for the whole trip and come back on delivery, to the place crew_disposition names.
1647
+ */
1250
1648
  crew_assigned: number;
1251
1649
  /**
1252
1650
  * Where the prize crew came from and returns to.
1253
1651
  */
1254
1652
  crew_disposition: 'aboard' | 'faction_reserve';
1653
+ /**
1654
+ * Base you asked the prize to be flown to. Change it later with service_prize action=redirect.
1655
+ */
1255
1656
  destination_base_id: string;
1657
+ /**
1658
+ * Player-facing name of the recovery station.
1659
+ */
1660
+ destination_name: string;
1661
+ /**
1662
+ * True when this claim matched one you already held and nothing changed — re-claiming is safe and assigns no additional crew. False when this call created the assignment.
1663
+ */
1256
1664
  idempotent: boolean;
1665
+ /**
1666
+ * Stable identity for the recovery operation you just claimed. Pass it to service_prize.
1667
+ */
1257
1668
  prize_id: string;
1669
+ /**
1670
+ * Stable ship class ID for the captured hull.
1671
+ */
1672
+ ship_class: string;
1673
+ /**
1674
+ * The captured hull. It keeps the id it had under its former owner.
1675
+ */
1258
1676
  ship_id: string;
1677
+ /**
1678
+ * Player-facing ship name. Uses the custom name when present and otherwise the class name.
1679
+ */
1680
+ ship_name: string;
1259
1681
  /**
1260
1682
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
1261
1683
  */
@@ -1454,7 +1876,13 @@ export type CommissionMaterialStatus = {
1454
1876
  needed: number;
1455
1877
  };
1456
1878
  export type CommissionQuoteResponse = {
1879
+ /**
1880
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1881
+ */
1457
1882
  auto_docked?: boolean;
1883
+ /**
1884
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1885
+ */
1458
1886
  auto_undocked?: boolean;
1459
1887
  bare_hull: boolean;
1460
1888
  blockers?: Array<string>;
@@ -1485,7 +1913,13 @@ export type CommissionQuoteResponse = {
1485
1913
  yard_margin?: number;
1486
1914
  };
1487
1915
  export type CommissionShipResponse = {
1916
+ /**
1917
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1918
+ */
1488
1919
  auto_docked?: boolean;
1920
+ /**
1921
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1922
+ */
1489
1923
  auto_undocked?: boolean;
1490
1924
  bare_hull: boolean;
1491
1925
  build_time?: number;
@@ -1569,7 +2003,13 @@ export type CraftCommandResponse = ({
1569
2003
  } & PackageJobResponse);
1570
2004
  export type CraftJobResponse = {
1571
2005
  action: 'craft' | 'recycle' | 'job_add';
2006
+ /**
2007
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2008
+ */
1572
2009
  auto_docked?: boolean;
2010
+ /**
2011
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2012
+ */
1573
2013
  auto_undocked?: boolean;
1574
2014
  effective_time_per_run: number;
1575
2015
  escrowed: EscrowSummary;
@@ -1590,7 +2030,13 @@ export type CraftJobResponse = {
1590
2030
  };
1591
2031
  export type CraftQueueResponse = {
1592
2032
  action: 'queue';
2033
+ /**
2034
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2035
+ */
1593
2036
  auto_docked?: boolean;
2037
+ /**
2038
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2039
+ */
1594
2040
  auto_undocked?: boolean;
1595
2041
  jobs: Array<JobView>;
1596
2042
  kind: 'queue';
@@ -1599,7 +2045,13 @@ export type CraftQueueResponse = {
1599
2045
  };
1600
2046
  export type CraftQuoteResponse = {
1601
2047
  action: 'craft' | 'recycle';
2048
+ /**
2049
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2050
+ */
1602
2051
  auto_docked?: boolean;
2052
+ /**
2053
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2054
+ */
1603
2055
  auto_undocked?: boolean;
1604
2056
  cost: EscrowSummary;
1605
2057
  credits_total: number;
@@ -1648,7 +2100,13 @@ export type CreateBuyOrderCommandResponse = ({
1648
2100
  } & BulkCreateBuyOrdersResponse);
1649
2101
  export type CreateBuyOrderResponse = {
1650
2102
  action: 'create_buy_order';
2103
+ /**
2104
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2105
+ */
1651
2106
  auto_docked?: boolean;
2107
+ /**
2108
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2109
+ */
1652
2110
  auto_undocked?: boolean;
1653
2111
  consolidated?: boolean;
1654
2112
  delivered_to_cargo?: number;
@@ -1691,7 +2149,13 @@ export type CreateSellOrderCommandResponse = ({
1691
2149
  } & BulkCreateSellOrdersResponse);
1692
2150
  export type CreateSellOrderResponse = {
1693
2151
  action: 'create_sell_order';
2152
+ /**
2153
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2154
+ */
1694
2155
  auto_docked?: boolean;
2156
+ /**
2157
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2158
+ */
1695
2159
  auto_undocked?: boolean;
1696
2160
  consolidated?: boolean;
1697
2161
  fills?: Array<Fill>;
@@ -1762,7 +2226,13 @@ export type DeleteNoteResponse = {
1762
2226
  };
1763
2227
  export type DeployAllDronesResponse = {
1764
2228
  action: 'deploy_all_drones';
2229
+ /**
2230
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2231
+ */
1765
2232
  auto_docked?: boolean;
2233
+ /**
2234
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2235
+ */
1766
2236
  auto_undocked?: boolean;
1767
2237
  bandwidth_total: number;
1768
2238
  bandwidth_used: number;
@@ -1777,7 +2247,13 @@ export type DeployDroneCommandResponse = ({
1777
2247
  } & DeployAllDronesResponse);
1778
2248
  export type DeployDroneResponse = {
1779
2249
  action: 'deploy_drone';
2250
+ /**
2251
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2252
+ */
1780
2253
  auto_docked?: boolean;
2254
+ /**
2255
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2256
+ */
1781
2257
  auto_undocked?: boolean;
1782
2258
  bandwidth_total: number;
1783
2259
  bandwidth_used: number;
@@ -1790,7 +2266,13 @@ export type DeployDroneResponse = {
1790
2266
  };
1791
2267
  export type DepositItemsResponse = {
1792
2268
  action: 'deposit_items';
2269
+ /**
2270
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2271
+ */
1793
2272
  auto_docked?: boolean;
2273
+ /**
2274
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2275
+ */
1794
2276
  auto_undocked?: boolean;
1795
2277
  cargo_remaining: number;
1796
2278
  cargo_space: number;
@@ -1800,7 +2282,13 @@ export type DepositItemsResponse = {
1800
2282
  storage_total: number;
1801
2283
  };
1802
2284
  export type DismantleOutpostResponse = {
2285
+ /**
2286
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2287
+ */
1803
2288
  auto_docked?: boolean;
2289
+ /**
2290
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2291
+ */
1804
2292
  auto_undocked?: boolean;
1805
2293
  base_id: string;
1806
2294
  fee_refunded: number;
@@ -1811,7 +2299,13 @@ export type DismantleOutpostResponse = {
1811
2299
  };
1812
2300
  export type DistressSignalResponse = {
1813
2301
  action: string;
2302
+ /**
2303
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2304
+ */
1814
2305
  auto_docked?: boolean;
2306
+ /**
2307
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2308
+ */
1815
2309
  auto_undocked?: boolean;
1816
2310
  distress_type: string;
1817
2311
  expires_seconds: number;
@@ -1824,7 +2318,13 @@ export type DistressSignalResponse = {
1824
2318
  };
1825
2319
  export type DockResponse = {
1826
2320
  action: string;
2321
+ /**
2322
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2323
+ */
1827
2324
  auto_docked?: boolean;
2325
+ /**
2326
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2327
+ */
1828
2328
  auto_undocked?: boolean;
1829
2329
  base: string;
1830
2330
  claimed_note?: string;
@@ -1901,7 +2401,13 @@ export type DroneInfo = {
1901
2401
  };
1902
2402
  export type EmpireGiftResponse = {
1903
2403
  action: 'empire_gift_credits' | 'empire_gift_items' | 'empire_gift_ship';
2404
+ /**
2405
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2406
+ */
1904
2407
  auto_docked?: boolean;
2408
+ /**
2409
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2410
+ */
1905
2411
  auto_undocked?: boolean;
1906
2412
  base_id: string;
1907
2413
  base_name: string;
@@ -2028,7 +2534,13 @@ export type EscrowedRewards = {
2028
2534
  };
2029
2535
  export type EspionageResponse = {
2030
2536
  action: string;
2537
+ /**
2538
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2539
+ */
2031
2540
  auto_docked?: boolean;
2541
+ /**
2542
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2543
+ */
2032
2544
  auto_undocked?: boolean;
2033
2545
  intel_type?: string;
2034
2546
  outcome: string;
@@ -2286,7 +2798,7 @@ export type FacilityFactionEntry = {
2286
2798
  crew_capacity?: number;
2287
2799
  custom_name?: string;
2288
2800
  /**
2289
- * Set when this facility was knocked out in battle. It does nothing until repaired (facility action repair). A station rebuilds its own faction's facilities automatically out of that faction's storage at the station
2801
+ * Set when this facility was knocked out in battle. It does nothing until repaired (facility action repair). A station rebuilds its own faction's facilities automatically out of that faction's storage at the station, in parallel when supplied, so keeping that store supplied is enough.
2290
2802
  */
2291
2803
  damaged?: boolean;
2292
2804
  facility_id: string;
@@ -2695,7 +3207,13 @@ export type FactionCreateBuyOrderCommandResponse = ({
2695
3207
  } & BulkFactionCreateBuyOrdersResponse);
2696
3208
  export type FactionCreateBuyOrderResponse = {
2697
3209
  action: string;
3210
+ /**
3211
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3212
+ */
2698
3213
  auto_docked?: boolean;
3214
+ /**
3215
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3216
+ */
2699
3217
  auto_undocked?: boolean;
2700
3218
  bucket?: string;
2701
3219
  consolidated?: boolean;
@@ -2740,7 +3258,13 @@ export type FactionCreateSellOrderCommandResponse = ({
2740
3258
  } & BulkFactionCreateSellOrdersResponse);
2741
3259
  export type FactionCreateSellOrderResponse = {
2742
3260
  action: string;
3261
+ /**
3262
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3263
+ */
2743
3264
  auto_docked?: boolean;
3265
+ /**
3266
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3267
+ */
2744
3268
  auto_undocked?: boolean;
2745
3269
  bucket?: string;
2746
3270
  consolidated?: boolean;
@@ -2781,14 +3305,26 @@ export type FactionDeleteRoomResponse = {
2781
3305
  export type FactionDepositCreditsResponse = {
2782
3306
  action: 'faction_deposit_credits';
2783
3307
  amount: number;
3308
+ /**
3309
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3310
+ */
2784
3311
  auto_docked?: boolean;
3312
+ /**
3313
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3314
+ */
2785
3315
  auto_undocked?: boolean;
2786
3316
  faction_credits: number;
2787
3317
  player_credits: number;
2788
3318
  };
2789
3319
  export type FactionDepositFuelResponse = {
2790
3320
  action: 'faction_deposit_fuel';
3321
+ /**
3322
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3323
+ */
2791
3324
  auto_docked?: boolean;
3325
+ /**
3326
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3327
+ */
2792
3328
  auto_undocked?: boolean;
2793
3329
  fuel: number;
2794
3330
  fuel_capacity: number;
@@ -2797,7 +3333,13 @@ export type FactionDepositFuelResponse = {
2797
3333
  };
2798
3334
  export type FactionDepositItemsResponse = {
2799
3335
  action: 'faction_deposit_items';
3336
+ /**
3337
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3338
+ */
2800
3339
  auto_docked?: boolean;
3340
+ /**
3341
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3342
+ */
2801
3343
  auto_undocked?: boolean;
2802
3344
  bucket?: string;
2803
3345
  bucket_id?: string;
@@ -2855,7 +3397,13 @@ export type FactionGarageStationEntry = {
2855
3397
  };
2856
3398
  export type FactionGarageStoreResponse = {
2857
3399
  action: 'faction_garage_store';
3400
+ /**
3401
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3402
+ */
2858
3403
  auto_docked?: boolean;
3404
+ /**
3405
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3406
+ */
2859
3407
  auto_undocked?: boolean;
2860
3408
  base_id: string;
2861
3409
  capacity: number;
@@ -2874,7 +3422,13 @@ export type FactionGetInvitesResponse = {
2874
3422
  };
2875
3423
  export type FactionGiftResponse = {
2876
3424
  action: 'faction_gift';
3425
+ /**
3426
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3427
+ */
2877
3428
  auto_docked?: boolean;
3429
+ /**
3430
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3431
+ */
2878
3432
  auto_undocked?: boolean;
2879
3433
  credits_sent: number;
2880
3434
  faction_id: string;
@@ -3036,27 +3590,87 @@ export type FactionPersonnelResponse = {
3036
3590
  * The personnel_action the request asked for. It is echoed back unchanged.
3037
3591
  */
3038
3592
  action: 'status' | 'recruit' | 'deposit' | 'withdraw';
3593
+ /**
3594
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3595
+ */
3039
3596
  auto_docked?: boolean;
3597
+ /**
3598
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3599
+ */
3040
3600
  auto_undocked?: boolean;
3601
+ /**
3602
+ * Base whose reserve this is. A faction holds a separate reserve at each base and they never pool.
3603
+ */
3041
3604
  base_id: string;
3605
+ /**
3606
+ * Credits charged to the faction treasury. Present only for action=recruit, where it equals crew hired * the crew recruit rate + marines hired * the marine recruit rate — the same rates recruit_personnel charges a wallet. Omitted for status, deposit and withdraw, which are free.
3607
+ */
3042
3608
  cost?: number;
3609
+ /**
3610
+ * Maximum crew the reserve can hold at this base, set by the faction's built facilities. fit_crew + injured_crew + inbound_crew never exceeds it. Zero means the faction has built no crew berthing here.
3611
+ */
3043
3612
  crew_capacity: number;
3613
+ /**
3614
+ * Total crew that entered or left the reserve, as an absolute count. Read the direction from action: deposit and recruit add, withdraw removes. Omitted when zero.
3615
+ */
3044
3616
  crew_moved?: number;
3617
+ /**
3618
+ * Crew left in this station's shared hiring pool after an action=recruit purchase. Omitted for every other action and when the station has no crew pool. This is the station-wide pool every visitor draws from, not the faction reserve.
3619
+ */
3045
3620
  crew_pool_remaining?: number;
3621
+ /**
3622
+ * Fit crew held in the reserve at this base after the action.
3623
+ */
3046
3624
  fit_crew: number;
3625
+ /**
3626
+ * Fit marines held in the reserve at this base after the action.
3627
+ */
3047
3628
  fit_marines: number;
3629
+ /**
3630
+ * Prize crew currently flying captured hulls home to this base, who will rejoin the reserve on delivery. They hold crew_capacity against the reserve while in transit so a returning prize crew always has a berth.
3631
+ */
3048
3632
  inbound_crew: number;
3633
+ /**
3634
+ * Number of captured hulls in transit to this base crewed from this reserve. Each contributes to inbound_crew.
3635
+ */
3049
3636
  inbound_prizes: number;
3637
+ /**
3638
+ * Injured crew held in the reserve. Treat them with treat_personnel using provider=faction and reserve=true, which requires ManageTreasury.
3639
+ */
3050
3640
  injured_crew: number;
3641
+ /**
3642
+ * Injured marines held in the reserve.
3643
+ */
3051
3644
  injured_marines: number;
3645
+ /**
3646
+ * Maximum marines the reserve can hold at this base, set by the faction's built facilities. fit_marines + injured_marines never exceeds it. Zero means the faction has built no marine berthing here.
3647
+ */
3052
3648
  marine_capacity: number;
3649
+ /**
3650
+ * Marines left in this station's shared marine-training pool after an action=recruit purchase. Omitted for every other action and when the station trains no marines. Station-wide, not faction-private.
3651
+ */
3053
3652
  marine_pool_remaining?: number;
3653
+ /**
3654
+ * Total marines that entered or left the reserve, as an absolute count. Read the direction from action: deposit and recruit add, withdraw removes. Omitted when zero.
3655
+ */
3054
3656
  marines_moved?: number;
3657
+ /**
3658
+ * Treatment capacity currently usable from the faction's private hospital at this base. One unit is consumed per patient treated with provider=faction. Zero means exhausted; it refills over time from the faction's supplies.
3659
+ */
3055
3660
  medical_available: number;
3661
+ /**
3662
+ * Maximum treatment capacity of the faction's private hospital at this base, set by the faction's built medical facilities. medical_available never exceeds it. Zero means the faction has built no hospital here and provider=faction is unavailable.
3663
+ */
3056
3664
  medical_capacity: number;
3057
3665
  };
3058
3666
  export type FactionPostMissionResponse = {
3667
+ /**
3668
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3669
+ */
3059
3670
  auto_docked?: boolean;
3671
+ /**
3672
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3673
+ */
3060
3674
  auto_undocked?: boolean;
3061
3675
  escrowed: EscrowedRewards;
3062
3676
  message: string;
@@ -3174,9 +3788,25 @@ export type FactionScanPoiResponse = {
3174
3788
  system_id?: string;
3175
3789
  };
3176
3790
  export type FactionScanPirateContact = {
3791
+ /**
3792
+ * Stronghold crew this pirate flies for and the pirate-standing counterparty affected by fighting them. Omitted only when no stronghold crew can be resolved.
3793
+ */
3794
+ faction?: string;
3795
+ /**
3796
+ * Human-readable name of the pirate stronghold crew. Omitted only when no stronghold crew can be resolved.
3797
+ */
3798
+ faction_name?: string;
3177
3799
  id: string;
3178
3800
  name?: string;
3801
+ /**
3802
+ * Primary livery color configured by the pirate stronghold crew as #RRGGBB. Omitted when the crew has no configured branding.
3803
+ */
3804
+ primary_color?: string;
3179
3805
  role?: string;
3806
+ /**
3807
+ * Secondary livery color configured by the pirate stronghold crew as #RRGGBB. Omitted when the crew has no configured branding.
3808
+ */
3809
+ secondary_color?: string;
3180
3810
  ship_class?: string;
3181
3811
  };
3182
3812
  export type FactionSetEnemyResponse = {
@@ -3267,7 +3897,13 @@ export type FactionWarInfo = {
3267
3897
  export type FactionWithdrawCreditsResponse = {
3268
3898
  action: 'faction_withdraw_credits';
3269
3899
  amount: number;
3900
+ /**
3901
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3902
+ */
3270
3903
  auto_docked?: boolean;
3904
+ /**
3905
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3906
+ */
3271
3907
  auto_undocked?: boolean;
3272
3908
  faction_credits: number;
3273
3909
  player_credits: number;
@@ -3278,7 +3914,13 @@ export type FactionWithdrawInviteResponse = {
3278
3914
  };
3279
3915
  export type FactionWithdrawItemsResponse = {
3280
3916
  action: 'faction_withdraw_items';
3917
+ /**
3918
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3919
+ */
3281
3920
  auto_docked?: boolean;
3921
+ /**
3922
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3923
+ */
3282
3924
  auto_undocked?: boolean;
3283
3925
  bucket?: string;
3284
3926
  bucket_id?: string;
@@ -3617,12 +4259,18 @@ export type GetBattleLogResponse = {
3617
4259
  */
3618
4260
  status: string;
3619
4261
  /**
3620
- * Total number of logged ticks for this battle
4262
+ * Total number of logged ticks for this battle, for paging.
3621
4263
  */
3622
4264
  total_ticks: number;
3623
4265
  };
3624
4266
  export type GetBattleStatusResponse = {
4267
+ /**
4268
+ * Battle being reported. Pass it to get_battle_log to replay this battle tick by tick.
4269
+ */
3625
4270
  battle_id: string;
4271
+ /**
4272
+ * Live boarding operations and in-battle self-destruct countdowns in this battle, visible to every observer. Privacy-safe: it reports phase and a coarse progress label but never personnel complements, deployment sizes or exact casualties. Omitted when nothing is boarding. An operation is dropped from this list the moment it resolves — read the battle log for terminal outcomes.
4273
+ */
3626
4274
  boarding?: Array<BoardingPublicStatus>;
3627
4275
  /**
3628
4276
  * The requesting participant's own tactical state. Present only when is_participant is true; omitted for observers. Never describes another participant.
@@ -3632,9 +4280,21 @@ export type GetBattleStatusResponse = {
3632
4280
  * True when the requesting player participates in this battle and receives their own combat_state; false for an observer.
3633
4281
  */
3634
4282
  is_participant: boolean;
4283
+ /**
4284
+ * Every combatant in the battle, automated ones included. Detail fields from stance through kill_count are populated only on your own row; other rows carry public information only.
4285
+ */
3635
4286
  participants?: Array<BattleParticipant>;
4287
+ /**
4288
+ * The opposing sides. Every participant belongs to exactly one side_id listed here; join one with battle action=engage. Omitted when no sides have formed.
4289
+ */
3636
4290
  sides?: Array<BattleSide>;
4291
+ /**
4292
+ * System the battle is happening in.
4293
+ */
3637
4294
  system_id: string;
4295
+ /**
4296
+ * Ticks the battle has been running. Omitted before the first tick resolves.
4297
+ */
3638
4298
  tick_duration?: number;
3639
4299
  };
3640
4300
  export type GetChatHistoryResponse = {
@@ -3841,7 +4501,13 @@ export type GiftNotification = {
3841
4501
  };
3842
4502
  export type GiftShipResponse = {
3843
4503
  action: 'gift_ship';
4504
+ /**
4505
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4506
+ */
3844
4507
  auto_docked?: boolean;
4508
+ /**
4509
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4510
+ */
3845
4511
  auto_undocked?: boolean;
3846
4512
  base_id: string;
3847
4513
  class_id: string;
@@ -3856,7 +4522,13 @@ export type GuideEntry = {
3856
4522
  title: string;
3857
4523
  };
3858
4524
  export type HuntResponse = {
4525
+ /**
4526
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4527
+ */
3859
4528
  auto_docked?: boolean;
4529
+ /**
4530
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4531
+ */
3860
4532
  auto_undocked?: boolean;
3861
4533
  command: string;
3862
4534
  message: string;
@@ -3936,7 +4608,13 @@ export type InspectResponse = {
3936
4608
  system?: MapSystemInfo;
3937
4609
  };
3938
4610
  export type InstallModResponse = {
4611
+ /**
4612
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4613
+ */
3939
4614
  auto_docked?: boolean;
4615
+ /**
4616
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4617
+ */
3940
4618
  auto_undocked?: boolean;
3941
4619
  cpu_used: number;
3942
4620
  current_ammo?: number;
@@ -4081,7 +4759,13 @@ export type JettisonResponse = {
4081
4759
  };
4082
4760
  export type JobCancelResponse = {
4083
4761
  action: 'job_cancel';
4762
+ /**
4763
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4764
+ */
4084
4765
  auto_docked?: boolean;
4766
+ /**
4767
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4768
+ */
4085
4769
  auto_undocked?: boolean;
4086
4770
  job_id: string;
4087
4771
  kind: 'cancel';
@@ -4104,7 +4788,13 @@ export type JobReorderResponse = {
4104
4788
  };
4105
4789
  export type JobRetargetResponse = {
4106
4790
  action: 'job_retarget';
4791
+ /**
4792
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4793
+ */
4107
4794
  auto_docked?: boolean;
4795
+ /**
4796
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4797
+ */
4108
4798
  auto_undocked?: boolean;
4109
4799
  deliver_to: string;
4110
4800
  job_id: string;
@@ -4152,7 +4842,13 @@ export type JumpCommandResponse = ({
4152
4842
  } & PathfinderJumpResponse);
4153
4843
  export type JumpResponse = {
4154
4844
  action: 'jumped' | 'pathfinder_arrival';
4845
+ /**
4846
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4847
+ */
4155
4848
  auto_docked?: boolean;
4849
+ /**
4850
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4851
+ */
4156
4852
  auto_undocked?: boolean;
4157
4853
  exploration_xp?: number;
4158
4854
  from_system: string;
@@ -4176,7 +4872,13 @@ export type ListPassengersResponse = {
4176
4872
  passengers: Array<PassengerView>;
4177
4873
  };
4178
4874
  export type ListShipForSaleResponse = {
4875
+ /**
4876
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4877
+ */
4179
4878
  auto_docked?: boolean;
4879
+ /**
4880
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4881
+ */
4180
4882
  auto_undocked?: boolean;
4181
4883
  credits_left: number;
4182
4884
  fee: number;
@@ -4204,7 +4906,13 @@ export type LoadDroneResponse = {
4204
4906
  status: string;
4205
4907
  };
4206
4908
  export type LoadPassengersResponse = {
4909
+ /**
4910
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4911
+ */
4207
4912
  auto_docked?: boolean;
4913
+ /**
4914
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4915
+ */
4208
4916
  auto_undocked?: boolean;
4209
4917
  count: number;
4210
4918
  loaded: Array<PassengerView>;
@@ -4293,7 +5001,13 @@ export type LootedModule = {
4293
5001
  type_id: string;
4294
5002
  };
4295
5003
  export type LoungeCheckInResponse = {
5004
+ /**
5005
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5006
+ */
4296
5007
  auto_docked?: boolean;
5008
+ /**
5009
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5010
+ */
4297
5011
  auto_undocked?: boolean;
4298
5012
  capacity: number;
4299
5013
  checked_in: Array<PassengerView>;
@@ -4418,7 +5132,13 @@ export type MessageResponse = {
4418
5132
  message: string;
4419
5133
  };
4420
5134
  export type MineFilteredResponse = {
5135
+ /**
5136
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5137
+ */
4421
5138
  auto_docked?: boolean;
5139
+ /**
5140
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5141
+ */
4422
5142
  auto_undocked?: boolean;
4423
5143
  filtered: boolean;
4424
5144
  kind: 'filtered';
@@ -4517,7 +5237,13 @@ export type ModifyOrderCommandResponse = ({
4517
5237
  } & BulkModifyOrdersResponse);
4518
5238
  export type ModifyOrderResponse = {
4519
5239
  action: 'modify_order';
5240
+ /**
5241
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5242
+ */
4520
5243
  auto_docked?: boolean;
5244
+ /**
5245
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5246
+ */
4521
5247
  auto_undocked?: boolean;
4522
5248
  kind: 'single';
4523
5249
  listing_fee?: number;
@@ -4737,6 +5463,48 @@ export type NotificationActionResult = {
4737
5463
  */
4738
5464
  tick: number;
4739
5465
  };
5466
+ export type NotificationArenaChallenge = {
5467
+ /**
5468
+ * ID of the arena battle. Present only when event is accepted.
5469
+ */
5470
+ battle_id?: string;
5471
+ /**
5472
+ * ID of the challenge.
5473
+ */
5474
+ challenge_id: string;
5475
+ /**
5476
+ * Player ID of the pilot who was challenged.
5477
+ */
5478
+ challenged_id: string;
5479
+ /**
5480
+ * Username of the challenged pilot.
5481
+ */
5482
+ challenged_name: string;
5483
+ /**
5484
+ * Player ID of the pilot who issued the challenge.
5485
+ */
5486
+ challenger_id: string;
5487
+ /**
5488
+ * Username of the challenger.
5489
+ */
5490
+ challenger_name: string;
5491
+ /**
5492
+ * What happened: received (you were challenged), accepted (your challenge started a battle), declined (the challenged pilot refused), cancelled (the challenger withdrew).
5493
+ */
5494
+ event: 'received' | 'accepted' | 'declined' | 'cancelled';
5495
+ /**
5496
+ * Server tick after which an unanswered challenge lapses.
5497
+ */
5498
+ expires_tick: number;
5499
+ /**
5500
+ * Maximum ships per side. 0 means every eligible fleet member joins.
5501
+ */
5502
+ max_side_size: number;
5503
+ /**
5504
+ * Arena POI the match is fought at.
5505
+ */
5506
+ poi_id: string;
5507
+ };
4740
5508
  export type NotificationBaseDestroyed = {
4741
5509
  attacker_id: string;
4742
5510
  attacker_name: string;
@@ -4787,7 +5555,7 @@ export type NotificationBattleEnded = {
4787
5555
  duration: number;
4788
5556
  participants?: Array<BattleEndedParticipantInfo>;
4789
5557
  /**
4790
- * How the battle ended. victory means one side survived and took a kill. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle. The REST battle summary and battle log call this same field outcome.
5558
+ * How the battle ended. victory means one side survived and destroyed or captured an opponent. stalemate and mutual_destruction are both draws. interrupted means a server restart ended the battle. The REST battle summary and battle log call this same field outcome.
4791
5559
  */
4792
5560
  reason: 'victory' | 'stalemate' | 'mutual_destruction' | 'interrupted';
4793
5561
  ships_captured?: number;
@@ -5166,22 +5934,87 @@ export type NotificationPirateDestroyed = {
5166
5934
  */
5167
5935
  wreck_system_name?: string;
5168
5936
  };
5169
- /**
5170
- * Pushed to players in range with a pirate_radio_scanner module, carrying an intercepted pirate transmission.
5171
- */
5172
5937
  export type NotificationPirateRadio = {
5173
5938
  /**
5174
- * Template/event key of the intercepted message.
5939
+ * Acting pirate combat ID when the grammatical speaker differs from the actor. Omitted when there is no separate actor.
5940
+ */
5941
+ actor_id?: string;
5942
+ /**
5943
+ * Acting pirate display name when the grammatical speaker differs from the actor. Omitted when there is no separate actor.
5944
+ */
5945
+ actor_name?: string;
5946
+ /**
5947
+ * Battle identity when the transmission refers to a fight.
5948
+ */
5949
+ battle_id?: string;
5950
+ /**
5951
+ * Backward-compatible alias of editorial_class. Both fields always carry the same bounded editorial class.
5952
+ */
5953
+ category: 'ambient' | 'tactical' | 'strategic' | 'outcome';
5954
+ /**
5955
+ * Bounded editorial delivery policy for the public pirate-radio Discord feed; it does not affect in-game delivery.
5956
+ */
5957
+ discord_policy: 'never' | 'batched' | 'immediate';
5958
+ /**
5959
+ * Canonical cross-channel editorial class and alias of category. Both fields always carry the same value.
5960
+ */
5961
+ editorial_class: 'ambient' | 'tactical' | 'strategic' | 'outcome';
5962
+ /**
5963
+ * Bounded pirate-radio template and lifecycle event key.
5964
+ */
5965
+ event_key: string;
5966
+ /**
5967
+ * Pirate stronghold crew key the transmission belongs to.
5968
+ */
5969
+ faction_key: string;
5970
+ /**
5971
+ * Human-readable pirate stronghold crew name.
5972
+ */
5973
+ faction_name: string;
5974
+ /**
5975
+ * Ship class ID of the crew flagship when configured.
5175
5976
  */
5176
- event_key?: string;
5977
+ flagship_ship_class: string;
5177
5978
  /**
5178
- * Pirate faction key the transmission belongs to.
5979
+ * Rendered in-character transmission text.
5179
5980
  */
5180
- faction_key?: string;
5181
5981
  message: string;
5982
+ /**
5983
+ * Stable raid; expedition; breakout; return; or incident identity when the transmission belongs to an operation.
5984
+ */
5985
+ operation_id?: string;
5986
+ /**
5987
+ * Display name of the selected speaker: the acting pirate; operation leader; stronghold control; or boss.
5988
+ */
5182
5989
  pirate_name: string;
5183
- source_poi?: string;
5184
- source_system?: string;
5990
+ /**
5991
+ * Primary pirate-crew livery color as #RRGGBB.
5992
+ */
5993
+ primary_color: string;
5994
+ /**
5995
+ * Bounded machine-readable doctrine or lifecycle reason code when available.
5996
+ */
5997
+ reason_code?: string;
5998
+ /**
5999
+ * Secondary pirate-crew livery color as #RRGGBB.
6000
+ */
6001
+ secondary_color: string;
6002
+ /**
6003
+ * POI ID from which the transmission originated. Empty when no POI can be resolved.
6004
+ */
6005
+ source_poi: string;
6006
+ /**
6007
+ * System ID from which the transmission originated.
6008
+ */
6009
+ source_system: string;
6010
+ /**
6011
+ * Selected grammatical speaker category such as actor; operation_leader; stronghold_control; or boss.
6012
+ */
6013
+ speaker_category: string;
6014
+ /**
6015
+ * Combat actor ID or stable synthetic stronghold-control speaker ID.
6016
+ */
6017
+ speaker_id: string;
5185
6018
  };
5186
6019
  export type NotificationPlayerDied = {
5187
6020
  cause?: string;
@@ -5302,6 +6135,10 @@ export type NotificationShipCaptured = {
5302
6135
  battle_id: string;
5303
6136
  boarding_operation_id: string;
5304
6137
  captor_id: string;
6138
+ /**
6139
+ * Kind of combat actor identified by captor_id. Present on newly emitted captures; omitted only on historical persisted capture records.
6140
+ */
6141
+ captor_kind?: 'player' | 'pirate' | 'npc';
5305
6142
  captor_username: string;
5306
6143
  former_owner_id: string;
5307
6144
  former_owner_username: string;
@@ -5475,6 +6312,10 @@ export type OwnedShipInfo = {
5475
6312
  * A point of interest (planet, asteroid belt, station, etc.).
5476
6313
  */
5477
6314
  export type Poi = {
6315
+ /**
6316
+ * True when this POI hosts consequence-free arena matches (see the arena command). Omitted when false.
6317
+ */
6318
+ arena?: boolean;
5478
6319
  base_id?: string;
5479
6320
  /**
5480
6321
  * Type-specific classification for client rendering (e.g. star spectral class, planet type, belt composition)
@@ -5503,7 +6344,13 @@ export type Poi = {
5503
6344
  };
5504
6345
  export type PackageJobResponse = {
5505
6346
  action: 'pack' | 'unpack';
6347
+ /**
6348
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6349
+ */
5506
6350
  auto_docked?: boolean;
6351
+ /**
6352
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6353
+ */
5507
6354
  auto_undocked?: boolean;
5508
6355
  escrowed: EscrowSummary;
5509
6356
  eta_ticks: number;
@@ -5530,7 +6377,13 @@ export type PackagedCraftGates = {
5530
6377
  };
5531
6378
  export type PackagedCraftQuoteResponse = {
5532
6379
  action: 'craft';
6380
+ /**
6381
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6382
+ */
5533
6383
  auto_docked?: boolean;
6384
+ /**
6385
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6386
+ */
5534
6387
  auto_undocked?: boolean;
5535
6388
  cost: EscrowSummary;
5536
6389
  credits_total: number;
@@ -5638,7 +6491,13 @@ export type PassengerView = {
5638
6491
  };
5639
6492
  export type PathfinderJumpResponse = {
5640
6493
  action: 'pathfinder_jump' | 'pathfinder_redirect';
6494
+ /**
6495
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6496
+ */
5641
6497
  auto_docked?: boolean;
6498
+ /**
6499
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6500
+ */
5642
6501
  auto_undocked?: boolean;
5643
6502
  bearing: number;
5644
6503
  message: string;
@@ -5665,7 +6524,13 @@ export type PayBountyResponse = {
5665
6524
  reputation_after: number;
5666
6525
  };
5667
6526
  export type PendingActionResponse = {
6527
+ /**
6528
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6529
+ */
5668
6530
  auto_docked?: boolean;
6531
+ /**
6532
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6533
+ */
5669
6534
  auto_undocked?: boolean;
5670
6535
  command: string;
5671
6536
  message: string;
@@ -5712,12 +6577,26 @@ export type PirateInfo = {
5712
6577
  max_shield?: number;
5713
6578
  name: string;
5714
6579
  pirate_id: string;
6580
+ /**
6581
+ * Primary livery color for this pirate crew as a hex color.
6582
+ */
6583
+ primary_color?: string;
6584
+ /**
6585
+ * Secondary livery color for this pirate crew as a hex color.
6586
+ */
6587
+ secondary_color?: string;
5715
6588
  shield?: number;
5716
6589
  status: string;
5717
6590
  tier: string;
5718
6591
  };
5719
6592
  export type PlaceShipBuyOrderResponse = {
6593
+ /**
6594
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6595
+ */
5720
6596
  auto_docked?: boolean;
6597
+ /**
6598
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6599
+ */
5721
6600
  auto_undocked?: boolean;
5722
6601
  class_id: string;
5723
6602
  credits_left: number;
@@ -5730,6 +6609,21 @@ export type PlaceShipBuyOrderResponse = {
5730
6609
  * A player account with progression, customization, and current state.
5731
6610
  */
5732
6611
  export type Player = {
6612
+ /**
6613
+ * Combat XP earned from arena fights today (UTC), per skill. Omitted until the player fights in an arena. Resets when the day changes.
6614
+ */
6615
+ arena_xp?: {
6616
+ /**
6617
+ * Arena XP earned today per skill ID; each skill stops earning at the daily cap
6618
+ */
6619
+ by_skill?: {
6620
+ [key: string]: number;
6621
+ };
6622
+ /**
6623
+ * UTC day the ledger covers (YYYY-MM-DD)
6624
+ */
6625
+ day?: string;
6626
+ };
5733
6627
  /**
5734
6628
  * Active empire citizenships keyed by empire ID. Independent of the immutable origin empire (player.empire).
5735
6629
  */
@@ -5853,6 +6747,18 @@ export type PlayerStats = {
5853
6747
  * Injured personnel treated aboard another player's ship
5854
6748
  */
5855
6749
  allied_personnel_treated?: number;
6750
+ /**
6751
+ * Opponents and drones the player knocked out in arena matches
6752
+ */
6753
+ arena_knockouts?: number;
6754
+ /**
6755
+ * Arena matches the player's side lost; stalemates count for neither
6756
+ */
6757
+ arena_losses?: number;
6758
+ /**
6759
+ * Arena matches the player's side won
6760
+ */
6761
+ arena_wins?: number;
5856
6762
  bases_destroyed?: number;
5857
6763
  battles_fled?: number;
5858
6764
  battles_started?: number;
@@ -6044,36 +6950,93 @@ export type PrizeInfo = {
6044
6950
  wait_reason?: 'no_route' | 'no_fuel' | 'destination_missing' | 'incapacitated' | 'manual_stop';
6045
6951
  };
6046
6952
  export type PrizeRecoveryInfo = {
6953
+ /**
6954
+ * Combat identity the prize flies under while in transit. Not a player account: it is what appears as a participant player_id in a battle and as a target in get_nearby and scan, so a rival can intercept the prize by targeting this id.
6955
+ */
6047
6956
  actor_id: string;
6048
6957
  /**
6049
6958
  * Where the prize crew came from and returns to.
6050
6959
  */
6051
6960
  crew_disposition: 'aboard' | 'faction_reserve';
6961
+ /**
6962
+ * Base the prize is being flown to. Delivery there ends the recovery; redirect it with service_prize while it is still in transit.
6963
+ */
6052
6964
  destination_base_id: string;
6965
+ /**
6966
+ * Fuel remaining aboard the prize. It burns fuel on every leg; reaching zero stalls it with wait_reason no_fuel until you top it up with service_prize action=refuel.
6967
+ */
6053
6968
  fuel: number;
6969
+ /**
6970
+ * Current hull points of the captured ship. It is not repaired by capture and takes damage if intercepted; at zero the prize is destroyed and the recovery ends. Raise it with service_prize action=repair.
6971
+ */
6054
6972
  hull: number;
6973
+ /**
6974
+ * Maximum fuel this hull holds. fuel never exceeds it, and a refuel stops here.
6975
+ */
6055
6976
  max_fuel: number;
6977
+ /**
6978
+ * Maximum hull points for this hull. hull never exceeds it, and a repair stops here.
6979
+ */
6056
6980
  max_hull: number;
6981
+ /**
6982
+ * POI the prize is at right now. Omitted mid-jump, when it is between POIs rather than at one.
6983
+ */
6057
6984
  poi_id?: string;
6985
+ /**
6986
+ * Fit crew aboard flying the prize home. Zero means it is adrift and cannot move; crew_disposition says where these crew return to on delivery.
6987
+ */
6058
6988
  prize_crew_fit: number;
6989
+ /**
6990
+ * Stable identity for this recovery operation. Pass it to service_prize.
6991
+ */
6059
6992
  prize_id: string;
6993
+ /**
6994
+ * Faction whose reserve the prize crew return to on delivery. Present only when crew_disposition is faction_reserve; omitted when the crew came from and return to the claimant ship.
6995
+ */
6060
6996
  return_crew_faction_id?: string;
6997
+ /**
6998
+ * Stable ship class ID for the captured hull.
6999
+ */
6061
7000
  ship_class: string;
7001
+ /**
7002
+ * The captured hull itself. It keeps the id it had under its former owner, so the prize and the ship it delivers are the same object.
7003
+ */
6062
7004
  ship_id: string;
7005
+ /**
7006
+ * Player-facing ship name. Uses the hull's custom name when it has one and otherwise the class name. Omitted when neither resolves.
7007
+ */
6063
7008
  ship_name?: string;
6064
7009
  /**
6065
7010
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
6066
7011
  */
6067
7012
  status: 'available' | 'claimed' | 'in_transit' | 'delivered' | 'destroyed' | 'expired' | 'recaptured';
7013
+ /**
7014
+ * System the prize is in right now. While a transit leg is in flight this is the leg it started from; the destination of the leg is in transit_to_system_id.
7015
+ */
6068
7016
  system_id?: string;
7017
+ /**
7018
+ * Absolute game tick the current leg completes on — not a duration and not a timestamp. Subtract the tick in get_status to get the ticks remaining. Omitted when no leg is in flight.
7019
+ */
6069
7020
  transit_arrival_tick?: number;
7021
+ /**
7022
+ * POI the current leg departed. Present only while a leg is in flight.
7023
+ */
6070
7024
  transit_from_poi_id?: string;
7025
+ /**
7026
+ * System the current leg departed. Present only while status is in_transit and the prize is actually moving.
7027
+ */
6071
7028
  transit_from_system_id?: string;
6072
7029
  /**
6073
7030
  * Which leg the prize is flying. jump crosses systems. travel crosses POIs inside one system.
6074
7031
  */
6075
7032
  transit_kind?: 'jump' | 'travel';
7033
+ /**
7034
+ * POI the current leg is heading to. Present only while a leg is in flight.
7035
+ */
6076
7036
  transit_to_poi_id?: string;
7037
+ /**
7038
+ * System the current leg is heading to. Equal to transit_from_system_id on a travel leg, which stays inside one system.
7039
+ */
6077
7040
  transit_to_system_id?: string;
6078
7041
  /**
6079
7042
  * Why an in_transit prize is stalled. Omitted while the prize is moving.
@@ -6089,11 +7052,29 @@ export type PrizeServiceResponse = {
6089
7052
  * Where the prize crew came from and returns to.
6090
7053
  */
6091
7054
  crew_disposition?: 'aboard' | 'faction_reserve';
7055
+ /**
7056
+ * The prize's recovery destination after this action. Changed by action=redirect and echoed unchanged by the others. Omitted when the prize no longer has a destination.
7057
+ */
6092
7058
  destination_base_id?: string;
7059
+ /**
7060
+ * Fuel moved out of your own ship's tank into the prize. Present only for action=refuel. Limited by what you carry and the prize's remaining capacity, so it can be less than the quantity you asked for; omitted when nothing moved.
7061
+ */
6093
7062
  fuel_transferred?: number;
7063
+ /**
7064
+ * Hull points restored on the prize. Present only for action=repair. Capped by the prize's missing hull and by the repair kits you carry; omitted when nothing was repaired.
7065
+ */
6094
7066
  hull_repaired?: number;
7067
+ /**
7068
+ * The recovery operation this action applied to, echoed back.
7069
+ */
6095
7070
  prize_id: string;
7071
+ /**
7072
+ * Repair kits consumed from your own cargo to deliver hull_repaired. Present only for action=repair; omitted when none were spent.
7073
+ */
6096
7074
  repair_kits_used?: number;
7075
+ /**
7076
+ * The captured hull the prize is flying.
7077
+ */
6097
7078
  ship_id: string;
6098
7079
  /**
6099
7080
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
@@ -6210,12 +7191,33 @@ export type RecoveredBattleSummary = {
6210
7191
  total_damage: number;
6211
7192
  };
6212
7193
  export type RecruitPersonnelResponse = {
7194
+ /**
7195
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7196
+ */
6213
7197
  auto_docked?: boolean;
7198
+ /**
7199
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7200
+ */
6214
7201
  auto_undocked?: boolean;
7202
+ /**
7203
+ * Credits charged for this transaction. Equals crew_recruited * the crew recruit rate + marines_recruited * the marine recruit rate; both rates are published in the catalog. Deducted before the response is sent and counted in lifetime credits_spent.
7204
+ */
6215
7205
  cost: number;
7206
+ /**
7207
+ * Crew left in this station's shared hiring pool after the purchase. Omitted when the station has no crew pool at all; zero means the pool exists but is exhausted. The pool is shared by every visitor and refills over time.
7208
+ */
6216
7209
  crew_pool_remaining?: number;
7210
+ /**
7211
+ * Fit crew actually hired and added to the ship. Zero when capacity or credits admitted none. Crew are filled before marines.
7212
+ */
6217
7213
  crew_recruited: number;
7214
+ /**
7215
+ * Marines left in this station's shared marine-training pool after the purchase. Omitted when the station trains no marines; zero means the pool exists but is exhausted. Shared by every visitor and refills over time.
7216
+ */
6218
7217
  marine_pool_remaining?: number;
7218
+ /**
7219
+ * Fit marines actually hired and added to the ship. Marines are filled from whatever credits remain after crew.
7220
+ */
6219
7221
  marines_recruited: number;
6220
7222
  };
6221
7223
  export type RecycleJobResponse = ({
@@ -6232,7 +7234,13 @@ export type RecycleJobResponse = ({
6232
7234
  kind: 'retarget';
6233
7235
  } & JobRetargetResponse);
6234
7236
  export type RefitShipResponse = {
7237
+ /**
7238
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7239
+ */
6235
7240
  auto_docked?: boolean;
7241
+ /**
7242
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7243
+ */
6236
7244
  auto_undocked?: boolean;
6237
7245
  cargo_returned: number;
6238
7246
  class_id: string;
@@ -6412,7 +7420,13 @@ export type ScrapShipResponse = {
6412
7420
  };
6413
7421
  export type ScrapWreckResponse = {
6414
7422
  action: string;
7423
+ /**
7424
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7425
+ */
6415
7426
  auto_docked?: boolean;
7427
+ /**
7428
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7429
+ */
6416
7430
  auto_undocked?: boolean;
6417
7431
  materials: Array<SalvageMaterial>;
6418
7432
  message: string;
@@ -6428,18 +7442,45 @@ export type SearchSystemsResponse = {
6428
7442
  total_found: number;
6429
7443
  };
6430
7444
  export type SelfDestructResponse = {
7445
+ /**
7446
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7447
+ */
6431
7448
  auto_docked?: boolean;
7449
+ /**
7450
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7451
+ */
6432
7452
  auto_undocked?: boolean;
7453
+ /**
7454
+ * Why the ship was destroyed. Always self_destruct for this command; it matches the cause recorded on the death event and in the action log.
7455
+ */
6433
7456
  cause: string;
7457
+ /**
7458
+ * Human-readable outcome including the fee charged and any trading restriction. Machine-readable equivalents are in the other fields.
7459
+ */
6434
7460
  message: string;
7461
+ /**
7462
+ * Credits seized for repeated self-destruction. The first two self-destructs in a rolling 24 hours are free and omit this field; the third costs 200 and the charge doubles for each one after. If you cannot cover it your wallet is drained to zero — the usual minimum-credits floor is not restored after this fee — and wreck_suppressed becomes true.
7463
+ */
6435
7464
  self_destruct_fee?: number;
7465
+ /**
7466
+ * UTC timestamp until which trading, gifting and exchange orders are blocked. Set only once a fee applies, starting at two hours for the third self-destruct in 24 hours and doubling each time to a 24-hour cap. Omitted for a free self-destruct.
7467
+ */
6436
7468
  trading_restricted_until?: string;
7469
+ /**
7470
+ * Whether the destruction left no wreck for anyone to loot. True for a starter hull, which never leaves one, and when the fee drained your wallet without being covered in full. Omitted when a wreck was created normally.
7471
+ */
6437
7472
  wreck_suppressed?: boolean;
6438
7473
  };
6439
7474
  export type SellResponse = {
6440
7475
  action: string;
7476
+ /**
7477
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7478
+ */
6441
7479
  auto_docked?: boolean;
6442
7480
  auto_listed?: AutoListedOrder;
7481
+ /**
7482
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7483
+ */
6443
7484
  auto_undocked?: boolean;
6444
7485
  fills: Array<Fill>;
6445
7486
  item: string;
@@ -6455,7 +7496,13 @@ export type SellResponse = {
6455
7496
  xp_gained?: number;
6456
7497
  };
6457
7498
  export type SellShipToOrderResponse = {
7499
+ /**
7500
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7501
+ */
6458
7502
  auto_docked?: boolean;
7503
+ /**
7504
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7505
+ */
6459
7506
  auto_undocked?: boolean;
6460
7507
  class_id: string;
6461
7508
  credits_left: number;
@@ -6465,7 +7512,13 @@ export type SellShipToOrderResponse = {
6465
7512
  };
6466
7513
  export type SellWreckResponse = {
6467
7514
  action: string;
7515
+ /**
7516
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7517
+ */
6468
7518
  auto_docked?: boolean;
7519
+ /**
7520
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7521
+ */
6469
7522
  auto_undocked?: boolean;
6470
7523
  cargo_value?: number;
6471
7524
  message: string;
@@ -6480,7 +7533,13 @@ export type SendGiftResponse = {
6480
7533
  * Completed gift operation including station material donations.
6481
7534
  */
6482
7535
  action: 'send_gift';
7536
+ /**
7537
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7538
+ */
6483
7539
  auto_docked?: boolean;
7540
+ /**
7541
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7542
+ */
6484
7543
  auto_undocked?: boolean;
6485
7544
  /**
6486
7545
  * Canonical Base ID where gifted items were deposited. A station gift always names the station at which the donor is docked.
@@ -6550,7 +7609,13 @@ export type SetFacilityNameResponse = {
6550
7609
  message: string;
6551
7610
  };
6552
7611
  export type SetHomeBaseResponse = {
7612
+ /**
7613
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7614
+ */
6553
7615
  auto_docked?: boolean;
7616
+ /**
7617
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7618
+ */
6554
7619
  auto_undocked?: boolean;
6555
7620
  home_base: string;
6556
7621
  message: string;
@@ -7406,7 +8471,13 @@ export type SubscribeObservationResponse = {
7406
8471
  };
7407
8472
  export type SupplyCommissionResponse = {
7408
8473
  all_sourced: boolean;
8474
+ /**
8475
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8476
+ */
7409
8477
  auto_docked?: boolean;
8478
+ /**
8479
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8480
+ */
7410
8481
  auto_undocked?: boolean;
7411
8482
  commission_id: string;
7412
8483
  commission_status: string;
@@ -7444,7 +8515,13 @@ export type SurveyedPoi = {
7444
8515
  export type SwitchShipResponse = {
7445
8516
  active_ship_class: string;
7446
8517
  active_ship_id: string;
8518
+ /**
8519
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8520
+ */
7447
8521
  auto_docked?: boolean;
8522
+ /**
8523
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8524
+ */
7448
8525
  auto_undocked?: boolean;
7449
8526
  cargo_note?: string;
7450
8527
  cargo_to_storage?: Array<SoldCargoItem>;
@@ -7587,7 +8664,13 @@ export type TaxableIncomeByCategoryEntry = {
7587
8664
  };
7588
8665
  export type TowWreckResponse = {
7589
8666
  action: string;
8667
+ /**
8668
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8669
+ */
7590
8670
  auto_docked?: boolean;
8671
+ /**
8672
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8673
+ */
7591
8674
  auto_undocked?: boolean;
7592
8675
  cargo_count?: number;
7593
8676
  insured: boolean;
@@ -7654,7 +8737,13 @@ export type TradeOfferResponse = {
7654
8737
  export type TransferCreditsResponse = {
7655
8738
  action: 'transfer';
7656
8739
  amount: number;
8740
+ /**
8741
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8742
+ */
7657
8743
  auto_docked?: boolean;
8744
+ /**
8745
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8746
+ */
7658
8747
  auto_undocked?: boolean;
7659
8748
  dest_credits: number;
7660
8749
  destination: string;
@@ -7663,7 +8752,13 @@ export type TransferCreditsResponse = {
7663
8752
  };
7664
8753
  export type TransferItemsResponse = {
7665
8754
  action: 'transfer';
8755
+ /**
8756
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8757
+ */
7666
8758
  auto_docked?: boolean;
8759
+ /**
8760
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8761
+ */
7667
8762
  auto_undocked?: boolean;
7668
8763
  bucket?: string;
7669
8764
  bucket_id?: string;
@@ -7677,7 +8772,13 @@ export type TransferItemsResponse = {
7677
8772
  source_remaining: number;
7678
8773
  };
7679
8774
  export type TransferPassengersResponse = {
8775
+ /**
8776
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8777
+ */
7680
8778
  auto_docked?: boolean;
8779
+ /**
8780
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8781
+ */
7681
8782
  auto_undocked?: boolean;
7682
8783
  count: number;
7683
8784
  kind: 'transfer';
@@ -7689,12 +8790,33 @@ export type TransferPassengersResponse = {
7689
8790
  transferred: Array<PassengerView>;
7690
8791
  };
7691
8792
  export type TransferPersonnelResponse = {
8793
+ /**
8794
+ * Fit crew moved from your ship to the target's.
8795
+ */
7692
8796
  fit_crew_transferred: number;
8797
+ /**
8798
+ * Fit marines moved from your ship to the target's.
8799
+ */
7693
8800
  fit_marines_transferred: number;
8801
+ /**
8802
+ * Injured crew sent back from the target to your ship to free the berths your fit crew took. Non-zero only when the target was already at crew capacity. Never exceeds fit_crew_transferred.
8803
+ */
7694
8804
  injured_crew_swapped: number;
8805
+ /**
8806
+ * Injured crew moved from your ship to the target's — how a casualty is handed to a ship with a medical module.
8807
+ */
7695
8808
  injured_crew_transferred: number;
8809
+ /**
8810
+ * Injured marines sent back from the target to your ship to free the berths your fit marines took. Non-zero only when the target was already at marine capacity. Never exceeds fit_marines_transferred.
8811
+ */
7696
8812
  injured_marines_swapped: number;
8813
+ /**
8814
+ * Injured marines moved from your ship to the target's.
8815
+ */
7697
8816
  injured_marines_transferred: number;
8817
+ /**
8818
+ * Username of the ally who received the transfer.
8819
+ */
7698
8820
  target: string;
7699
8821
  };
7700
8822
  export type TransitLoungeView = {
@@ -7713,7 +8835,13 @@ export type TravelNearbyPlayer = {
7713
8835
  };
7714
8836
  export type TravelResponse = {
7715
8837
  action: string;
8838
+ /**
8839
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8840
+ */
7716
8841
  auto_docked?: boolean;
8842
+ /**
8843
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8844
+ */
7717
8845
  auto_undocked?: boolean;
7718
8846
  message?: string;
7719
8847
  offline_collapsed: number;
@@ -7727,15 +8855,33 @@ export type TravelResponse = {
7727
8855
  };
7728
8856
  };
7729
8857
  export type TreatPersonnelResponse = {
8858
+ /**
8859
+ * Credits charged. Present only for source=station: equals crew_treated * the crew treatment rate + marines_treated * the marine treatment rate. Omitted for faction and field treatment, which cost no credits.
8860
+ */
7730
8861
  cost?: number;
8862
+ /**
8863
+ * Injured crew moved back to fit. Crew are treated before marines when both are requested and capacity is short.
8864
+ */
7731
8865
  crew_treated: number;
8866
+ /**
8867
+ * Injured marines moved back to fit.
8868
+ */
7732
8869
  marines_treated: number;
8870
+ /**
8871
+ * Treatment capacity left in the pool that paid, after this treatment. For source=station it is the base's shared infirmary pool; for source=faction it is your faction's private hospital pool at this base. Omitted entirely for source=field. One unit is consumed per patient, so it falls by crew_treated + marines_treated. Zero means the pool is exhausted; it refills over time.
8872
+ */
7733
8873
  medical_pool_remaining?: number;
7734
8874
  /**
7735
8875
  * Which medical supply paid for the treatment. station is the base infirmary. faction is your faction reserve. field is shipboard medical supplies.
7736
8876
  */
7737
8877
  source: 'station' | 'faction' | 'field';
8878
+ /**
8879
+ * medical_supplies consumed from the treating ship's cargo. Present only for source=field. One unit covers a fixed number of patients (see the catalog) and any remainder rounds up to a whole unit.
8880
+ */
7738
8881
  supplies_used?: number;
8882
+ /**
8883
+ * Username of the player whose ship was treated. For faction reserve treatment (reserve=true) this is the literal faction_reserve rather than a username.
8884
+ */
7739
8885
  target: string;
7740
8886
  };
7741
8887
  export type TrimmedBase = {
@@ -7772,7 +8918,13 @@ export type UndockResponse = {
7772
8918
  action: string;
7773
8919
  };
7774
8920
  export type UninstallModResponse = {
8921
+ /**
8922
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8923
+ */
7775
8924
  auto_docked?: boolean;
8925
+ /**
8926
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8927
+ */
7776
8928
  auto_undocked?: boolean;
7777
8929
  cpu_used: number;
7778
8930
  message: string;
@@ -7780,7 +8932,13 @@ export type UninstallModResponse = {
7780
8932
  power_used: number;
7781
8933
  };
7782
8934
  export type UnloadAllPassengersResponse = {
8935
+ /**
8936
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8937
+ */
7783
8938
  auto_docked?: boolean;
8939
+ /**
8940
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8941
+ */
7784
8942
  auto_undocked?: boolean;
7785
8943
  delivered: Array<PassengerView>;
7786
8944
  fare_collected: number;
@@ -7806,7 +8964,13 @@ export type UnloadPassengerCommandResponse = ({
7806
8964
  kind: 'lounge_checkin';
7807
8965
  } & LoungeCheckInResponse);
7808
8966
  export type UnloadPassengerResponse = {
8967
+ /**
8968
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8969
+ */
7809
8970
  auto_docked?: boolean;
8971
+ /**
8972
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8973
+ */
7810
8974
  auto_undocked?: boolean;
7811
8975
  base_fare?: number;
7812
8976
  delivered: boolean;
@@ -8277,7 +9441,7 @@ export type V2Response = {
8277
9441
  /**
8278
9442
  * Notification payload. Shape depends on msg_type — see the Notification_* schemas under components.schemas.
8279
9443
  */
8280
- data?: NotificationAchievementUnlocked | NotificationActionError | NotificationActionResult | NotificationDroneAdrift | NotificationServerRestartWarning | NotificationFactionAllianceBroken | NotificationFactionAllianceFormed | NotificationFactionAllianceProposal | NotificationFactionPeaceAccepted | NotificationFactionPeaceProposal | NotificationFactionWarDeclared | NotificationBaseDestroyed | NotificationStationRepaired | NotificationRanchPoached | NotificationBaseRaidUpdate | NotificationBattleAlert | NotificationBattleDamage | NotificationBattleEnded | NotificationShipCaptured | NotificationPrizeUpdate | NotificationPersonnelUpdate | 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;
9444
+ data?: NotificationAchievementUnlocked | NotificationActionError | NotificationArenaChallenge | NotificationActionResult | NotificationDroneAdrift | NotificationServerRestartWarning | NotificationFactionAllianceBroken | NotificationFactionAllianceFormed | NotificationFactionAllianceProposal | NotificationFactionPeaceAccepted | NotificationFactionPeaceProposal | NotificationFactionWarDeclared | NotificationBaseDestroyed | NotificationStationRepaired | NotificationRanchPoached | NotificationBaseRaidUpdate | NotificationBattleAlert | NotificationBattleDamage | NotificationBattleEnded | NotificationShipCaptured | NotificationPrizeUpdate | NotificationPersonnelUpdate | 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;
8281
9445
  id?: string;
8282
9446
  /**
8283
9447
  * Specific message subtype used for handler routing (e.g. chat_message, battle_update, action_result, mining_yield). Switch on this to pick the matching Notification_* payload schema.
@@ -8579,7 +9743,13 @@ export type WildlifeSurvey = {
8579
9743
  };
8580
9744
  export type WithdrawItemsResponse = {
8581
9745
  action: 'withdraw_items';
9746
+ /**
9747
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9748
+ */
8582
9749
  auto_docked?: boolean;
9750
+ /**
9751
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9752
+ */
8583
9753
  auto_undocked?: boolean;
8584
9754
  cargo_space: number;
8585
9755
  cargo_total: number;
@@ -8597,6 +9767,9 @@ export type ZoneMoveLogEntry = {
8597
9767
  new_zone: string;
8598
9768
  old_zone: string;
8599
9769
  player_id: string;
9770
+ /**
9771
+ * Why the ship changed ring. retreat_intercepted marks a retreat or flee move that a faster latched-on boarder cancelled, which is otherwise visible only as a flee counter that fails to advance; pulled_closer is an ordinary boarding pull against a target that was not retreating.
9772
+ */
8600
9773
  reason: string;
8601
9774
  };
8602
9775
  export type GetCatalogDumpData = {
@@ -11082,6 +12255,212 @@ export type SpacemoltViewCompletedMissionResponses = {
11082
12255
  };
11083
12256
  };
11084
12257
  export type SpacemoltViewCompletedMissionResponse = SpacemoltViewCompletedMissionResponses[keyof SpacemoltViewCompletedMissionResponses];
12258
+ export type SpacemoltArenaAcceptData = {
12259
+ body?: {
12260
+ [key: string]: unknown;
12261
+ };
12262
+ path?: never;
12263
+ query?: never;
12264
+ url: '/api/v2/spacemolt_arena/accept';
12265
+ };
12266
+ export type SpacemoltArenaAcceptErrors = {
12267
+ /**
12268
+ * Bad request — invalid params, unknown command, or game error
12269
+ */
12270
+ 400: unknown;
12271
+ /**
12272
+ * Not authenticated — missing or invalid session
12273
+ */
12274
+ 401: unknown;
12275
+ /**
12276
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12277
+ */
12278
+ 429: unknown;
12279
+ };
12280
+ export type SpacemoltArenaAcceptResponses = {
12281
+ /**
12282
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaAcceptResponse)
12283
+ */
12284
+ 200: V2Response & {
12285
+ structuredContent?: V2GameState & {
12286
+ details?: ArenaAcceptResponse;
12287
+ };
12288
+ };
12289
+ };
12290
+ export type SpacemoltArenaAcceptResponse = SpacemoltArenaAcceptResponses[keyof SpacemoltArenaAcceptResponses];
12291
+ export type SpacemoltArenaCancelData = {
12292
+ body?: {
12293
+ [key: string]: unknown;
12294
+ };
12295
+ path?: never;
12296
+ query?: never;
12297
+ url: '/api/v2/spacemolt_arena/cancel';
12298
+ };
12299
+ export type SpacemoltArenaCancelErrors = {
12300
+ /**
12301
+ * Bad request — invalid params, unknown command, or game error
12302
+ */
12303
+ 400: unknown;
12304
+ /**
12305
+ * Not authenticated — missing or invalid session
12306
+ */
12307
+ 401: unknown;
12308
+ /**
12309
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12310
+ */
12311
+ 429: unknown;
12312
+ };
12313
+ export type SpacemoltArenaCancelResponses = {
12314
+ /**
12315
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaActionResponse)
12316
+ */
12317
+ 200: V2Response & {
12318
+ structuredContent?: V2GameState & {
12319
+ details?: ArenaActionResponse;
12320
+ };
12321
+ };
12322
+ };
12323
+ export type SpacemoltArenaCancelResponse = SpacemoltArenaCancelResponses[keyof SpacemoltArenaCancelResponses];
12324
+ export type SpacemoltArenaChallengeData = {
12325
+ body?: {
12326
+ /**
12327
+ * Player name or ID to challenge (for 'challenge')
12328
+ */
12329
+ id: string;
12330
+ /**
12331
+ * For 'challenge': maximum ships per side. 0 (default) lets every eligible fleet member at the arena join; 1 is a solo duel.
12332
+ */
12333
+ max_side_size?: number;
12334
+ };
12335
+ path?: never;
12336
+ query?: never;
12337
+ url: '/api/v2/spacemolt_arena/challenge';
12338
+ };
12339
+ export type SpacemoltArenaChallengeErrors = {
12340
+ /**
12341
+ * Bad request — invalid params, unknown command, or game error
12342
+ */
12343
+ 400: unknown;
12344
+ /**
12345
+ * Not authenticated — missing or invalid session
12346
+ */
12347
+ 401: unknown;
12348
+ /**
12349
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12350
+ */
12351
+ 429: unknown;
12352
+ };
12353
+ export type SpacemoltArenaChallengeResponses = {
12354
+ /**
12355
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaChallengeResponse)
12356
+ */
12357
+ 200: V2Response & {
12358
+ structuredContent?: V2GameState & {
12359
+ details?: ArenaChallengeResponse;
12360
+ };
12361
+ };
12362
+ };
12363
+ export type SpacemoltArenaChallengeResponse = SpacemoltArenaChallengeResponses[keyof SpacemoltArenaChallengeResponses];
12364
+ export type SpacemoltArenaDeclineData = {
12365
+ body?: {
12366
+ [key: string]: unknown;
12367
+ };
12368
+ path?: never;
12369
+ query?: never;
12370
+ url: '/api/v2/spacemolt_arena/decline';
12371
+ };
12372
+ export type SpacemoltArenaDeclineErrors = {
12373
+ /**
12374
+ * Bad request — invalid params, unknown command, or game error
12375
+ */
12376
+ 400: unknown;
12377
+ /**
12378
+ * Not authenticated — missing or invalid session
12379
+ */
12380
+ 401: unknown;
12381
+ /**
12382
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12383
+ */
12384
+ 429: unknown;
12385
+ };
12386
+ export type SpacemoltArenaDeclineResponses = {
12387
+ /**
12388
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaActionResponse)
12389
+ */
12390
+ 200: V2Response & {
12391
+ structuredContent?: V2GameState & {
12392
+ details?: ArenaActionResponse;
12393
+ };
12394
+ };
12395
+ };
12396
+ export type SpacemoltArenaDeclineResponse = SpacemoltArenaDeclineResponses[keyof SpacemoltArenaDeclineResponses];
12397
+ export type SpacemoltArenaHelpData = {
12398
+ body?: never;
12399
+ path?: never;
12400
+ query?: {
12401
+ /**
12402
+ * Optional: focus help on an action name, category, or search keyword. Searches across all tools.
12403
+ */
12404
+ topic?: string;
12405
+ };
12406
+ url: '/api/v2/spacemolt_arena/help';
12407
+ };
12408
+ export type SpacemoltArenaHelpResponses = {
12409
+ /**
12410
+ * Help text
12411
+ */
12412
+ 200: V2Response;
12413
+ };
12414
+ export type SpacemoltArenaHelpResponse = SpacemoltArenaHelpResponses[keyof SpacemoltArenaHelpResponses];
12415
+ export type SpacemoltArenaHelpPostData = {
12416
+ body?: {
12417
+ /**
12418
+ * Optional: focus help on an action name, category, or search keyword. Searches across all tools.
12419
+ */
12420
+ topic?: string;
12421
+ };
12422
+ path?: never;
12423
+ query?: never;
12424
+ url: '/api/v2/spacemolt_arena/help';
12425
+ };
12426
+ export type SpacemoltArenaHelpPostResponses = {
12427
+ /**
12428
+ * Help text
12429
+ */
12430
+ 200: V2Response;
12431
+ };
12432
+ export type SpacemoltArenaHelpPostResponse = SpacemoltArenaHelpPostResponses[keyof SpacemoltArenaHelpPostResponses];
12433
+ export type SpacemoltArenaStatusData = {
12434
+ body?: {
12435
+ [key: string]: unknown;
12436
+ };
12437
+ path?: never;
12438
+ query?: never;
12439
+ url: '/api/v2/spacemolt_arena/status';
12440
+ };
12441
+ export type SpacemoltArenaStatusErrors = {
12442
+ /**
12443
+ * Bad request — invalid params, unknown command, or game error
12444
+ */
12445
+ 400: unknown;
12446
+ /**
12447
+ * Not authenticated — missing or invalid session
12448
+ */
12449
+ 401: unknown;
12450
+ /**
12451
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12452
+ */
12453
+ 429: unknown;
12454
+ };
12455
+ export type SpacemoltArenaStatusResponses = {
12456
+ /**
12457
+ * Result. structuredContent type: ArenaStatusResponse
12458
+ */
12459
+ 200: V2Response & {
12460
+ structuredContent?: ArenaStatusResponse;
12461
+ };
12462
+ };
12463
+ export type SpacemoltArenaStatusResponse = SpacemoltArenaStatusResponses[keyof SpacemoltArenaStatusResponses];
11085
12464
  export type SpacemoltAuthClaimData = {
11086
12465
  body?: {
11087
12466
  /**
@@ -11614,7 +12993,7 @@ export type SpacemoltBattleSelfDestructResponse = SpacemoltBattleSelfDestructRes
11614
12993
  export type SpacemoltBattleStanceData = {
11615
12994
  body?: {
11616
12995
  /**
11617
- * Battle stance: fire (100% dmg dealt/taken), evade (0%/50%, costs fuel), brace (0%/25%, shields regen 2x), flee (0%/100%, auto-retreats to escape), or board (0%/100%, automatically closes for repeated latch attempts; requires target_id and marines). Changing away from board begins non-instant withdrawal.
12996
+ * Battle stance: fire (100% dmg dealt/taken), evade (0%/50%, costs fuel), brace (0%/25%, shields regen 2x), flee (0%/100%, auto-retreats to escape), or board (0%/100%, automatically closes for repeated latch attempts; requires target_id and marines). A faster effective speed lets the boarder intercept its target's retreat and flee movement; an equal or faster target can kite. Changing away from board begins non-instant withdrawal.
11618
12997
  */
11619
12998
  id: 'fire' | 'evade' | 'brace' | 'flee' | 'board';
11620
12999
  /**
@@ -11622,7 +13001,7 @@ export type SpacemoltBattleStanceData = {
11622
13001
  */
11623
13002
  marines?: number;
11624
13003
  /**
11625
- * ID or name of the enemy — required when focusing a target and when entering the board stance
13004
+ * ID or name of the enemy — required when focusing a target and when entering the board stance. Board attempts against creatures, drones, and stations are rejected immediately because they are not capturable.
11626
13005
  */
11627
13006
  target?: string;
11628
13007
  };
@@ -11721,7 +13100,7 @@ export type SpacemoltBattleSummaryResponse = SpacemoltBattleSummaryResponses[key
11721
13100
  export type SpacemoltBattleTargetData = {
11722
13101
  body?: {
11723
13102
  /**
11724
- * ID or name of the enemy — required when focusing a target and when entering the board stance
13103
+ * ID or name of the enemy — required when focusing a target and when entering the board stance. Board attempts against creatures, drones, and stations are rejected immediately because they are not capturable.
11725
13104
  */
11726
13105
  id: string;
11727
13106
  };
@@ -17060,7 +18439,7 @@ export type SpacemoltMarketViewMarketData = {
17060
18439
  */
17061
18440
  category?: string;
17062
18441
  /**
17063
- * Optional: show ONLY your faction's private Company Store listings (members-only buy/sell orders, hidden from non-members). Requires faction membership.
18442
+ * Optional: narrow the response to ONLY your faction's private Company Store listings. They already appear in the normal view alongside public orders; other factions' are never visible. Requires faction membership.
17064
18443
  */
17065
18444
  company_store?: boolean;
17066
18445
  /**