@spacemolt/lib 13.1.1 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -133,6 +133,8 @@ export type AmmoStats = {
133
133
  shield_bypass?: number;
134
134
  shield_damage_mod?: number;
135
135
  splash_pct?: number;
136
+ splash_radius?: number;
137
+ splash_stack_cap?: number;
136
138
  untraceable?: boolean;
137
139
  };
138
140
  export type AnalysisInput = {
@@ -155,13 +157,506 @@ export type AnalysisStep = {
155
157
  recipe_id: string;
156
158
  };
157
159
  export type AnalyzeMarketResponse = {
160
+ /**
161
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
162
+ */
158
163
  auto_docked?: boolean;
164
+ /**
165
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
166
+ */
159
167
  auto_undocked?: boolean;
160
168
  insights: Array<MarketInsight>;
161
169
  message: string;
162
170
  skill_level: number;
163
171
  station: string;
164
172
  };
173
+ export type ArenaAcceptResponse = {
174
+ /**
175
+ * Always accept.
176
+ */
177
+ action: 'accept';
178
+ /**
179
+ * ID of the arena battle. Use the battle command and get_battle_status to fight it.
180
+ */
181
+ battle_id: string;
182
+ /**
183
+ * Human-readable confirmation.
184
+ */
185
+ message: string;
186
+ /**
187
+ * The challenger's battle side ID.
188
+ */
189
+ opponent_side: number;
190
+ /**
191
+ * Every pilot in the match, both sides, at the moment it started.
192
+ */
193
+ participants: Array<ArenaParticipantInfo>;
194
+ /**
195
+ * Your battle side ID.
196
+ */
197
+ your_side: number;
198
+ };
199
+ export type ArenaActionResponse = {
200
+ /**
201
+ * The action that was performed.
202
+ */
203
+ action: 'decline' | 'cancel';
204
+ /**
205
+ * ID of the challenge that was removed.
206
+ */
207
+ challenge_id: string;
208
+ /**
209
+ * Human-readable confirmation.
210
+ */
211
+ message: string;
212
+ };
213
+ export type ArenaChallengeDefInfo = {
214
+ /**
215
+ * True when you are undocked at the challenge's arena right now. Starting it also needs locked to be false.
216
+ */
217
+ at_this_arena: boolean;
218
+ /**
219
+ * Challenge ID to pass as challenge_id to arena action=fight.
220
+ */
221
+ challenge_id: string;
222
+ /**
223
+ * Lore and briefing for the fight, including what the rules ask of your ship.
224
+ */
225
+ description: string;
226
+ /**
227
+ * The enemy ships spawned for the fight, one entry per line of the definition.
228
+ */
229
+ enemies: Array<ArenaEnemyInfo>;
230
+ /**
231
+ * True while any challenge in requires has no win on your record. arena action=fight refuses a locked challenge with challenge_locked.
232
+ */
233
+ locked: boolean;
234
+ /**
235
+ * Display name of the challenge.
236
+ */
237
+ name: string;
238
+ /**
239
+ * Arena POI the fight is held at. You must be undocked there to start it.
240
+ */
241
+ poi_id: string;
242
+ /**
243
+ * Display name of the arena POI.
244
+ */
245
+ poi_name: string;
246
+ /**
247
+ * Challenge IDs you must have won at least once before this one will start. Empty when the challenge is open to everyone.
248
+ */
249
+ requires: Array<string>;
250
+ /**
251
+ * Loadout rules every ship on your side must pass. Zero or omitted fields are unrestricted. A ship that breaks a rule refuses the whole side with a rule_* error naming the pilot, the hull and the rule.
252
+ */
253
+ rules: ArenaRules;
254
+ /**
255
+ * Series the challenge belongs to. Challenges list in series, then stage, order.
256
+ */
257
+ series: string;
258
+ /**
259
+ * Position within the series, from 1. Higher stages are harder.
260
+ */
261
+ stage: number;
262
+ /**
263
+ * Times you have won this challenge. 0 until your first win.
264
+ */
265
+ wins: number;
266
+ };
267
+ export type ArenaChallengeInfo = {
268
+ /**
269
+ * ID of the pending challenge.
270
+ */
271
+ challenge_id: string;
272
+ /**
273
+ * Server tick after which the challenge lapses.
274
+ */
275
+ expires_tick: number;
276
+ /**
277
+ * Maximum ships per side. 0 means every eligible fleet member joins.
278
+ */
279
+ max_side_size: number;
280
+ /**
281
+ * Player ID of the other party.
282
+ */
283
+ opponent_id: string;
284
+ /**
285
+ * Username of the other party.
286
+ */
287
+ opponent_name: string;
288
+ /**
289
+ * Arena POI the match will be fought at.
290
+ */
291
+ poi_id: string;
292
+ };
293
+ export type ArenaChallengeResponse = {
294
+ /**
295
+ * Always challenge.
296
+ */
297
+ action: 'challenge';
298
+ /**
299
+ * ID of the pending challenge. Only one challenge per player is pending at a time.
300
+ */
301
+ challenge_id: string;
302
+ /**
303
+ * Server tick after which the challenge lapses if not accepted.
304
+ */
305
+ expires_tick: number;
306
+ /**
307
+ * Maximum ships per side. 0 means every eligible fleet member joins, 1 means a solo duel.
308
+ */
309
+ max_side_size: number;
310
+ /**
311
+ * Human-readable confirmation.
312
+ */
313
+ message: string;
314
+ /**
315
+ * Arena POI the match will be fought at. Both sides must stay undocked here until the challenge is answered.
316
+ */
317
+ poi_id: string;
318
+ /**
319
+ * Player ID of the pilot you challenged.
320
+ */
321
+ target_id: string;
322
+ /**
323
+ * Username of the pilot you challenged.
324
+ */
325
+ target_name: string;
326
+ };
327
+ export type ArenaChallengesResponse = {
328
+ /**
329
+ * Always challenges.
330
+ */
331
+ action: 'challenges';
332
+ /**
333
+ * Every NPC challenge in the game, in series then stage order. Empty when none are defined.
334
+ */
335
+ challenges: Array<ArenaChallengeDefInfo>;
336
+ };
337
+ export type ArenaDroneEntry = {
338
+ hull: number;
339
+ owner_id: string;
340
+ status: string;
341
+ };
342
+ export type ArenaEnemyInfo = {
343
+ /**
344
+ * How many ships of this line the challenge spawns. Always at least 1.
345
+ */
346
+ count: number;
347
+ /**
348
+ * True for the named headline enemy of the fight. Your ship opens targeting the boss when there is one.
349
+ */
350
+ is_boss: boolean;
351
+ /**
352
+ * Display name of the enemy. Copies of a multi-ship line are numbered (Ring Cleaver 1, Ring Cleaver 2) once spawned.
353
+ */
354
+ name: string;
355
+ /**
356
+ * Ship class ID of the enemy hull.
357
+ */
358
+ ship_class: string;
359
+ /**
360
+ * Display name of the enemy hull.
361
+ */
362
+ ship_class_name: string;
363
+ };
364
+ export type ArenaFightResponse = {
365
+ /**
366
+ * Always fight.
367
+ */
368
+ action: 'fight';
369
+ /**
370
+ * ID of the arena battle. Use the battle command and get_battle_status to fight it.
371
+ */
372
+ battle_id: string;
373
+ /**
374
+ * Challenge ID that was started.
375
+ */
376
+ challenge_id: string;
377
+ /**
378
+ * The enemy lines of the challenge, as listed by arena action=challenges.
379
+ */
380
+ enemies: Array<ArenaEnemyInfo>;
381
+ /**
382
+ * Battle side ID every challenge enemy fights on.
383
+ */
384
+ enemy_side: number;
385
+ /**
386
+ * Human-readable confirmation.
387
+ */
388
+ message: string;
389
+ /**
390
+ * Display name of the challenge.
391
+ */
392
+ name: string;
393
+ /**
394
+ * Every combatant in the match at the moment it started, your side and the enemies. Enemy entries carry the spawned NPC's id as player_id.
395
+ */
396
+ participants: Array<ArenaParticipantInfo>;
397
+ /**
398
+ * Your battle side ID. Fleet members share it.
399
+ */
400
+ your_side: number;
401
+ };
402
+ export type ArenaNpcInfo = {
403
+ /**
404
+ * ID of the arena match the enemy is fighting in. Enemies exist only for the length of their match.
405
+ */
406
+ battle_id: string;
407
+ /**
408
+ * Current hull points.
409
+ */
410
+ hull: number;
411
+ /**
412
+ * True for the named headline enemy of its challenge.
413
+ */
414
+ is_boss: boolean;
415
+ /**
416
+ * Maximum hull points.
417
+ */
418
+ max_hull: number;
419
+ /**
420
+ * Maximum shield points.
421
+ */
422
+ max_shield: number;
423
+ /**
424
+ * Display name of the enemy.
425
+ */
426
+ name: string;
427
+ /**
428
+ * Combat ID of the enemy: the player_id it carries in battle payloads and the id to target with the battle command.
429
+ */
430
+ npc_id: string;
431
+ /**
432
+ * Primary livery color as #RRGGBB.
433
+ */
434
+ primary_color: string;
435
+ /**
436
+ * Secondary livery color as #RRGGBB.
437
+ */
438
+ secondary_color: string;
439
+ /**
440
+ * Current shield points.
441
+ */
442
+ shield: number;
443
+ /**
444
+ * Ship class ID of the enemy hull.
445
+ */
446
+ ship_class: string;
447
+ /**
448
+ * Display name of the enemy hull.
449
+ */
450
+ ship_class_name: string;
451
+ /**
452
+ * The enemy's status line, as a player's status message. Omitted when it has none.
453
+ */
454
+ status?: string;
455
+ };
456
+ export type ArenaParticipantInfo = {
457
+ /**
458
+ * Player ID.
459
+ */
460
+ player_id: string;
461
+ /**
462
+ * Battle side the pilot fights on. Fleet members share their leader's side.
463
+ */
464
+ side_id: number;
465
+ /**
466
+ * Username.
467
+ */
468
+ username: string;
469
+ };
470
+ export type ArenaResponse = ({
471
+ action: 'challenge';
472
+ } & ArenaChallengeResponse) | ({
473
+ action: 'accept';
474
+ } & ArenaAcceptResponse) | ({
475
+ action: 'cancel' | 'decline';
476
+ } & ArenaActionResponse) | ({
477
+ action: 'status';
478
+ } & ArenaStatusResponse) | ({
479
+ action: 'challenges';
480
+ } & ArenaChallengesResponse) | ({
481
+ action: 'fight';
482
+ } & ArenaFightResponse) | ({
483
+ action: 'help';
484
+ } & CommandHelpResponse);
485
+ export type ArenaRestoreState = {
486
+ battle_id: string;
487
+ drones?: {
488
+ [key: string]: ArenaDroneEntry;
489
+ };
490
+ ships?: {
491
+ [key: string]: ArenaShipEntry;
492
+ };
493
+ };
494
+ export type ArenaRules = {
495
+ /**
496
+ * Item IDs allowed in cargo. Omitted or empty = any item.
497
+ */
498
+ allowed_cargo?: Array<string>;
499
+ /**
500
+ * Weapon damage types allowed (kinetic, energy, thermal, em, explosive, void). Omitted or empty = every type.
501
+ */
502
+ allowed_damage_types?: Array<string>;
503
+ /**
504
+ * Hull classes allowed (Fighter, Freighter, Miner, ...), case-insensitive. Omitted or empty = every class.
505
+ */
506
+ allowed_hull_classes?: Array<string>;
507
+ /**
508
+ * Module IDs allowed on the hull. Omitted or empty = any module.
509
+ */
510
+ allowed_modules?: Array<string>;
511
+ /**
512
+ * Ship categories allowed (Combat, Industrial, Commercial, ...), case-insensitive. Omitted or empty = every category.
513
+ */
514
+ allowed_ship_categories?: Array<string>;
515
+ /**
516
+ * Ship class IDs allowed. Omitted or empty = every ship class.
517
+ */
518
+ allowed_ship_classes?: Array<string>;
519
+ /**
520
+ * Item IDs refused in cargo and refused by use_item during the match. Omitted or empty = none banned.
521
+ */
522
+ banned_cargo?: Array<string>;
523
+ /**
524
+ * Consumable effect types refused (repair, shield, buff, emergency_jump, fuel, power). Omitted or empty = none banned.
525
+ */
526
+ banned_effect_types?: Array<string>;
527
+ /**
528
+ * Hull classes refused, case-insensitive. Omitted or empty = none banned.
529
+ */
530
+ banned_hull_classes?: Array<string>;
531
+ /**
532
+ * Module IDs refused. Omitted or empty = none banned.
533
+ */
534
+ banned_modules?: Array<string>;
535
+ /**
536
+ * Ship categories refused, case-insensitive. Omitted or empty = none banned.
537
+ */
538
+ banned_ship_categories?: Array<string>;
539
+ /**
540
+ * Ship class IDs refused. Omitted or empty = none banned.
541
+ */
542
+ banned_ship_classes?: Array<string>;
543
+ /**
544
+ * Maximum crew aboard (fit plus injured). Omitted or 0 = no cap.
545
+ */
546
+ max_crew?: number;
547
+ /**
548
+ * Maximum marines aboard. Omitted or 0 = no cap.
549
+ */
550
+ max_marines?: number;
551
+ /**
552
+ * Largest ship scale allowed (1 = personal ... 5 = capital). Omitted or 0 = no cap.
553
+ */
554
+ max_ship_scale?: number;
555
+ /**
556
+ * Highest ship tier allowed (0-5). Omitted or 0 = no cap.
557
+ */
558
+ max_ship_tier?: number;
559
+ /**
560
+ * Maximum ships per side. 0 = every eligible fleet member joins, 1 = solo duel.
561
+ */
562
+ max_side_size: number;
563
+ /**
564
+ * Lowest ship tier allowed (0-5). Omitted or 0 = no minimum.
565
+ */
566
+ min_ship_tier?: number;
567
+ /**
568
+ * Minimum ships a side must bring. Omitted or 0 = no minimum.
569
+ */
570
+ min_side_size?: number;
571
+ /**
572
+ * True when magazine-fed weapons are refused. Omitted = allowed.
573
+ */
574
+ no_ammo_weapons?: boolean;
575
+ /**
576
+ * True when boarding gear is refused. Omitted = allowed.
577
+ */
578
+ no_boarding?: boolean;
579
+ /**
580
+ * True when cloaking modules are refused. Omitted = allowed.
581
+ */
582
+ no_cloak?: boolean;
583
+ /**
584
+ * True when no consumable (any item use_item accepts) may be carried in or used. Omitted = consumables allowed.
585
+ */
586
+ no_consumables?: boolean;
587
+ /**
588
+ * True when drone bays and deployed drones are refused. Omitted = allowed.
589
+ */
590
+ no_drones?: boolean;
591
+ /**
592
+ * True when webifiers, disruptors and scramblers are refused. Omitted = allowed.
593
+ */
594
+ no_tackle?: boolean;
595
+ /**
596
+ * True when ships must enter with an empty hold. Omitted = cargo allowed.
597
+ */
598
+ require_empty_cargo?: boolean;
599
+ };
600
+ export type ArenaShipEntry = {
601
+ armor: number;
602
+ hull: number;
603
+ max_hull: number;
604
+ max_shield: number;
605
+ personnel: PersonnelState;
606
+ personnel_recovery_tick?: number;
607
+ player_id: string;
608
+ shield: number;
609
+ };
610
+ export type ArenaStatusResponse = {
611
+ /**
612
+ * Always status.
613
+ */
614
+ action: 'status';
615
+ /**
616
+ * Lifetime opponents and drones you knocked out in the arena.
617
+ */
618
+ arena_knockouts: number;
619
+ /**
620
+ * Lifetime arena matches your side lost. Stalemates count for neither.
621
+ */
622
+ arena_losses: number;
623
+ /**
624
+ * Lifetime arena matches your side won.
625
+ */
626
+ arena_wins: number;
627
+ /**
628
+ * True when your current POI hosts arena matches.
629
+ */
630
+ at_arena: boolean;
631
+ /**
632
+ * ID of the arena battle you are fighting in. Omitted when you are not in one.
633
+ */
634
+ battle_id?: string;
635
+ /**
636
+ * A challenge waiting for your answer. Omitted when none is pending.
637
+ */
638
+ incoming?: ArenaChallengeInfo;
639
+ /**
640
+ * A challenge you issued that is still unanswered. Omitted when none is pending.
641
+ */
642
+ outgoing?: ArenaChallengeInfo;
643
+ /**
644
+ * Daily arena XP limit per skill.
645
+ */
646
+ xp_cap_per_skill: number;
647
+ /**
648
+ * 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.
649
+ */
650
+ xp_used_today: {
651
+ [key: string]: number;
652
+ };
653
+ };
654
+ export type ArenaXpLedger = {
655
+ by_skill: {
656
+ [key: string]: number;
657
+ };
658
+ day: string;
659
+ };
165
660
  export type AttackLogEntry = {
166
661
  after_def_buff?: number;
167
662
  after_stance?: number;
@@ -211,7 +706,13 @@ export type AttackLogEntry = {
211
706
  };
212
707
  export type AttackNpcResponse = {
213
708
  action: 'attack';
709
+ /**
710
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
711
+ */
214
712
  auto_docked?: boolean;
713
+ /**
714
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
715
+ */
215
716
  auto_undocked?: boolean;
216
717
  kind: 'npc';
217
718
  target: string;
@@ -224,7 +725,13 @@ export type AttackNpcResponse = {
224
725
  };
225
726
  export type AttackPlayerResponse = {
226
727
  action: 'attack';
728
+ /**
729
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
730
+ */
227
731
  auto_docked?: boolean;
732
+ /**
733
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
734
+ */
228
735
  auto_undocked?: boolean;
229
736
  battle_id: string;
230
737
  kind: 'player';
@@ -346,7 +853,7 @@ export type BaseCostResponse = {
346
853
  };
347
854
  export type BattleCombatState = {
348
855
  /**
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.
856
+ * 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
857
  */
351
858
  can_escape: boolean;
352
859
  /**
@@ -366,13 +873,29 @@ export type BattleCombatState = {
366
873
  */
367
874
  flee_counter: number;
368
875
  /**
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.
876
+ * 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
877
  */
371
878
  flee_required?: number;
372
879
  /**
373
880
  * 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
881
  */
375
882
  incapacitated: boolean;
883
+ /**
884
+ * 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.
885
+ */
886
+ intercepted: boolean;
887
+ /**
888
+ * 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.
889
+ */
890
+ intercepting: boolean;
891
+ /**
892
+ * 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.
893
+ */
894
+ intercepting_target_id?: string;
895
+ /**
896
+ * 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.
897
+ */
898
+ interceptor_id?: string;
376
899
  /**
377
900
  * 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
901
  */
@@ -404,7 +927,7 @@ export type BattleEndLogEntry = {
404
927
  category: string;
405
928
  duration: number;
406
929
  /**
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.
930
+ * 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
931
  */
409
932
  outcome: 'victory' | 'stalemate' | 'mutual_destruction' | 'interrupted';
410
933
  participant_names?: Array<string>;
@@ -429,6 +952,8 @@ export type BattleEndedParticipantInfo = {
429
952
  username: string;
430
953
  };
431
954
  export type BattleLogEntry = {
955
+ arena?: boolean;
956
+ arena_restore?: ArenaRestoreState;
432
957
  attacks?: Array<AttackLogEntry>;
433
958
  autopilot?: Array<AutoPilotLogEntry>;
434
959
  battle_ended?: BattleEndLogEntry;
@@ -504,11 +1029,11 @@ export type BattleParticipant = {
504
1029
  export type BattleParticipantInfo = {
505
1030
  hull_pct?: number;
506
1031
  /**
507
- * True for server-controlled combatants including pirates
1032
+ * True for server-controlled combatants including pirates, police, drones, creatures, stations, and intact prizes.
508
1033
  */
509
1034
  is_npc?: boolean;
510
1035
  /**
511
- * Combatant kind: player
1036
+ * Combatant kind: player, pirate, police, drone, creature, station, prize, or npc. Prize identifies an autonomously controlled intact captured ship.
512
1037
  */
513
1038
  kind?: string;
514
1039
  player_id: string;
@@ -521,18 +1046,36 @@ export type BattleParticipantInfo = {
521
1046
  zone: string;
522
1047
  };
523
1048
  export type BattleResponse = {
1049
+ /**
1050
+ * The battle action the request asked for. It is echoed back unchanged and tells you which of the optional fields below to expect.
1051
+ */
524
1052
  action: 'advance' | 'retreat' | 'stance' | 'target' | 'engage' | 'self_destruct';
1053
+ /**
1054
+ * Battle the command applied to. Omitted when the command did not resolve against a specific battle.
1055
+ */
525
1056
  battle_id?: string;
1057
+ /**
1058
+ * Marines requested for the queued boarding attempt, echoed back. This is not a committed or latched count: a same-tick contender that loses deterministic boarding initiative deploys none, and a winner's actual deployment depends on its 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.
1059
+ */
526
1060
  marines_requested?: number;
1061
+ /**
1062
+ * 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.
1063
+ */
527
1064
  message: string;
528
1065
  operation_id?: string;
529
1066
  phase?: string;
530
1067
  progress?: string;
1068
+ /**
1069
+ * 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.
1070
+ */
531
1071
  self_destruct_countdown?: number;
532
1072
  /**
533
- * Resulting combat stance: fire/evade/brace/flee/board
1073
+ * Combat stance requested by action=stance. Ordinary stance changes apply on the next battle tick. A queued board request becomes exclusive and suppresses your weapons only if it wins any same-tick hull conflict; deterministic boarding initiative selects one physical link and the battle log records rejected contenders. Switching away from an active board stance begins a multi-tick withdrawal that costs marines — the requested replacement stance applies once disengagement finishes.
1074
+ */
1075
+ stance?: 'fire' | 'evade' | 'brace' | 'flee' | 'board';
1076
+ /**
1077
+ * 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
1078
  */
535
- stance?: string;
536
1079
  target_id?: string;
537
1080
  };
538
1081
  export type BattleSelfDestructState = {
@@ -568,7 +1111,7 @@ export type BattleSummaryResponse = {
568
1111
  has_station: boolean;
569
1112
  origin_poi?: string;
570
1113
  /**
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.
1114
+ * 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
1115
  */
573
1116
  outcome: string;
574
1117
  participant_count: number;
@@ -616,28 +1159,79 @@ export type BerthsView = {
616
1159
  first: BerthCount;
617
1160
  };
618
1161
  export type BoardingPublicStatus = {
1162
+ /**
1163
+ * 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.
1164
+ */
619
1165
  attacker_id?: string;
1166
+ /**
1167
+ * 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.
1168
+ */
620
1169
  operation_id: string;
621
- phase: string;
622
- progress?: string;
1170
+ /**
1171
+ * 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.
1172
+ */
1173
+ phase: 'latching' | 'assault' | 'withdrawing' | 'self_destruct';
1174
+ /**
1175
+ * 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.
1176
+ */
1177
+ progress?: 'closing' | 'attached' | 'withdrawing' | 'countdown';
1178
+ /**
1179
+ * 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.
1180
+ */
623
1181
  self_destruct_countdown?: number;
1182
+ /**
1183
+ * Combatant being boarded. Matches a participant player_id in the same response. Always omitted on self_destruct rows, which have no target.
1184
+ */
624
1185
  target_id?: string;
625
1186
  };
626
1187
  export type BoardingStateLogEntry = {
1188
+ /**
1189
+ * 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.
1190
+ */
627
1191
  actor_id?: string;
1192
+ /**
1193
+ * True when the boarding party took losses this round. Omitted when false. Qualitative only: the number of marines lost is private.
1194
+ */
628
1195
  attacker_casualties?: boolean;
1196
+ /**
1197
+ * 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.
1198
+ */
629
1199
  casualties_occurred?: boolean;
1200
+ /**
1201
+ * True when the defending complement took losses this round. Omitted when false. Qualitative only: the number lost is private.
1202
+ */
630
1203
  defender_casualties?: boolean;
1204
+ /**
1205
+ * True when hull_damage finished the counterpart ship off. Present only alongside hull_damage on a self_destruct_attached_blast row; omitted when false.
1206
+ */
631
1207
  destroyed?: boolean;
632
1208
  /**
633
1209
  * 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.
634
1210
  */
635
1211
  event: string;
1212
+ /**
1213
+ * 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.
1214
+ */
636
1215
  hull_damage?: number;
1216
+ /**
1217
+ * 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.
1218
+ */
637
1219
  operation_id: string;
638
- phase: string;
1220
+ /**
1221
+ * 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.
1222
+ */
1223
+ phase: 'latching' | 'assault' | 'withdrawing' | 'resolved' | 'self_destruct';
1224
+ /**
1225
+ * Why the event fired, when the event alone is ambiguous. boarding_rejected carries either a validation reason or contested_same_tick when deterministic boarding initiative selected another eligible request sharing either hull. self_destruct_canceled may carry battle_ended when combat ending cleared the countdown. Omitted otherwise.
1226
+ */
639
1227
  reason?: string;
1228
+ /**
1229
+ * 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.
1230
+ */
640
1231
  self_destruct_countdown?: number;
1232
+ /**
1233
+ * Combatant on the receiving end. Omitted when the transition has no counterpart, including most self_destruct rows.
1234
+ */
641
1235
  target_id?: string;
642
1236
  };
643
1237
  export type BrowseShipsResponse = {
@@ -648,7 +1242,13 @@ export type BrowseShipsResponse = {
648
1242
  listings: Array<ShipListing>;
649
1243
  };
650
1244
  export type BuildBaseResponse = {
1245
+ /**
1246
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1247
+ */
651
1248
  auto_docked?: boolean;
1249
+ /**
1250
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1251
+ */
652
1252
  auto_undocked?: boolean;
653
1253
  base_id: string;
654
1254
  fee_paid: number;
@@ -695,7 +1295,13 @@ export type BulkCancelOrderResult = {
695
1295
  };
696
1296
  export type BulkCancelOrdersResponse = {
697
1297
  action: 'cancel_order';
1298
+ /**
1299
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1300
+ */
698
1301
  auto_docked?: boolean;
1302
+ /**
1303
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1304
+ */
699
1305
  auto_undocked?: boolean;
700
1306
  kind: 'bulk';
701
1307
  mode: 'bulk';
@@ -709,7 +1315,13 @@ export type BulkCancelReturns = {
709
1315
  };
710
1316
  export type BulkCraftResponse = {
711
1317
  action: 'craft' | 'recycle';
1318
+ /**
1319
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1320
+ */
712
1321
  auto_docked?: boolean;
1322
+ /**
1323
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1324
+ */
713
1325
  auto_undocked?: boolean;
714
1326
  kind: 'bulk_craft';
715
1327
  mode: 'bulk';
@@ -733,7 +1345,13 @@ export type BulkCraftResult = {
733
1345
  };
734
1346
  export type BulkCreateBuyOrdersResponse = {
735
1347
  action: 'create_buy_order';
1348
+ /**
1349
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1350
+ */
736
1351
  auto_docked?: boolean;
1352
+ /**
1353
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1354
+ */
737
1355
  auto_undocked?: boolean;
738
1356
  kind: 'bulk';
739
1357
  mode: 'bulk';
@@ -742,7 +1360,13 @@ export type BulkCreateBuyOrdersResponse = {
742
1360
  };
743
1361
  export type BulkCreateSellOrdersResponse = {
744
1362
  action: 'create_sell_order';
1363
+ /**
1364
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1365
+ */
745
1366
  auto_docked?: boolean;
1367
+ /**
1368
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1369
+ */
746
1370
  auto_undocked?: boolean;
747
1371
  kind: 'bulk';
748
1372
  mode: 'bulk';
@@ -771,7 +1395,13 @@ export type BulkFactionBuyOrderResult = {
771
1395
  };
772
1396
  export type BulkFactionCreateBuyOrdersResponse = {
773
1397
  action: 'faction_create_buy_order';
1398
+ /**
1399
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1400
+ */
774
1401
  auto_docked?: boolean;
1402
+ /**
1403
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1404
+ */
775
1405
  auto_undocked?: boolean;
776
1406
  kind: 'bulk';
777
1407
  mode: 'bulk';
@@ -780,7 +1410,13 @@ export type BulkFactionCreateBuyOrdersResponse = {
780
1410
  };
781
1411
  export type BulkFactionCreateSellOrdersResponse = {
782
1412
  action: 'faction_create_sell_order';
1413
+ /**
1414
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1415
+ */
783
1416
  auto_docked?: boolean;
1417
+ /**
1418
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1419
+ */
784
1420
  auto_undocked?: boolean;
785
1421
  kind: 'bulk';
786
1422
  mode: 'bulk';
@@ -807,7 +1443,13 @@ export type BulkFactionSellOrderResult = {
807
1443
  };
808
1444
  export type BulkJobCancelResponse = {
809
1445
  action: 'job_cancel';
1446
+ /**
1447
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1448
+ */
810
1449
  auto_docked?: boolean;
1450
+ /**
1451
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1452
+ */
811
1453
  auto_undocked?: boolean;
812
1454
  kind: 'bulk_cancel';
813
1455
  message: string;
@@ -828,7 +1470,13 @@ export type BulkModifyOrderResult = {
828
1470
  };
829
1471
  export type BulkModifyOrdersResponse = {
830
1472
  action: 'modify_order';
1473
+ /**
1474
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1475
+ */
831
1476
  auto_docked?: boolean;
1477
+ /**
1478
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1479
+ */
832
1480
  auto_undocked?: boolean;
833
1481
  kind: 'bulk';
834
1482
  mode: 'bulk';
@@ -874,7 +1522,13 @@ export type BulkStorageItemResult = {
874
1522
  };
875
1523
  export type BulkStorageResponse = {
876
1524
  action: 'bulk_deposit' | 'bulk_withdraw' | 'bulk_transfer';
1525
+ /**
1526
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1527
+ */
877
1528
  auto_docked?: boolean;
1529
+ /**
1530
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1531
+ */
878
1532
  auto_undocked?: boolean;
879
1533
  bucket?: string;
880
1534
  bucket_id?: string;
@@ -902,7 +1556,13 @@ export type BurnLogEntry = {
902
1556
  ticks_remaining: number;
903
1557
  };
904
1558
  export type BuyInsuranceResponse = {
1559
+ /**
1560
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1561
+ */
905
1562
  auto_docked?: boolean;
1563
+ /**
1564
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1565
+ */
906
1566
  auto_undocked?: boolean;
907
1567
  coverage: number;
908
1568
  expires_at: string;
@@ -914,7 +1574,13 @@ export type BuyInsuranceResponse = {
914
1574
  risk_score?: number;
915
1575
  };
916
1576
  export type BuyListedShipResponse = {
1577
+ /**
1578
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1579
+ */
917
1580
  auto_docked?: boolean;
1581
+ /**
1582
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1583
+ */
918
1584
  auto_undocked?: boolean;
919
1585
  class_id: string;
920
1586
  credits_left: number;
@@ -925,8 +1591,14 @@ export type BuyListedShipResponse = {
925
1591
  };
926
1592
  export type BuyResponse = {
927
1593
  action: string;
1594
+ /**
1595
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1596
+ */
928
1597
  auto_docked?: boolean;
929
1598
  auto_listed?: AutoListedOrder;
1599
+ /**
1600
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1601
+ */
930
1602
  auto_undocked?: boolean;
931
1603
  delivered_to_cargo?: number;
932
1604
  delivered_to_storage?: number;
@@ -954,7 +1626,13 @@ export type CancelOrderCommandResponse = ({
954
1626
  } & BulkCancelOrdersResponse);
955
1627
  export type CancelOrderResponse = {
956
1628
  action: 'cancel_order';
1629
+ /**
1630
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
1631
+ */
957
1632
  auto_docked?: boolean;
1633
+ /**
1634
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
1635
+ */
958
1636
  auto_undocked?: boolean;
959
1637
  delivered_to?: string;
960
1638
  faction_order?: boolean;
@@ -1254,15 +1932,42 @@ export type ClaimInsuranceResponse = {
1254
1932
  policies: Array<InsurancePolicy>;
1255
1933
  };
1256
1934
  export type ClaimPrizeResponse = {
1935
+ /**
1936
+ * 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.
1937
+ */
1257
1938
  crew_assigned: number;
1258
1939
  /**
1259
1940
  * Where the prize crew came from and returns to.
1260
1941
  */
1261
1942
  crew_disposition: 'aboard' | 'faction_reserve';
1943
+ /**
1944
+ * Base you asked the prize to be flown to. Change it later with service_prize action=redirect.
1945
+ */
1262
1946
  destination_base_id: string;
1947
+ /**
1948
+ * Player-facing name of the recovery station.
1949
+ */
1950
+ destination_name: string;
1951
+ /**
1952
+ * 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.
1953
+ */
1263
1954
  idempotent: boolean;
1955
+ /**
1956
+ * Stable identity for the recovery operation you just claimed. Pass it to service_prize.
1957
+ */
1264
1958
  prize_id: string;
1959
+ /**
1960
+ * Stable ship class ID for the captured hull.
1961
+ */
1962
+ ship_class: string;
1963
+ /**
1964
+ * The captured hull. It keeps the id it had under its former owner.
1965
+ */
1265
1966
  ship_id: string;
1967
+ /**
1968
+ * Player-facing ship name. Uses the custom name when present and otherwise the class name.
1969
+ */
1970
+ ship_name: string;
1266
1971
  /**
1267
1972
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
1268
1973
  */
@@ -1461,7 +2166,13 @@ export type CommissionMaterialStatus = {
1461
2166
  needed: number;
1462
2167
  };
1463
2168
  export type CommissionQuoteResponse = {
2169
+ /**
2170
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2171
+ */
1464
2172
  auto_docked?: boolean;
2173
+ /**
2174
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2175
+ */
1465
2176
  auto_undocked?: boolean;
1466
2177
  bare_hull: boolean;
1467
2178
  blockers?: Array<string>;
@@ -1492,7 +2203,13 @@ export type CommissionQuoteResponse = {
1492
2203
  yard_margin?: number;
1493
2204
  };
1494
2205
  export type CommissionShipResponse = {
2206
+ /**
2207
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2208
+ */
1495
2209
  auto_docked?: boolean;
2210
+ /**
2211
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2212
+ */
1496
2213
  auto_undocked?: boolean;
1497
2214
  bare_hull: boolean;
1498
2215
  build_time?: number;
@@ -1576,7 +2293,13 @@ export type CraftCommandResponse = ({
1576
2293
  } & PackageJobResponse);
1577
2294
  export type CraftJobResponse = {
1578
2295
  action: 'craft' | 'recycle' | 'job_add';
2296
+ /**
2297
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2298
+ */
1579
2299
  auto_docked?: boolean;
2300
+ /**
2301
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2302
+ */
1580
2303
  auto_undocked?: boolean;
1581
2304
  effective_time_per_run: number;
1582
2305
  escrowed: EscrowSummary;
@@ -1597,7 +2320,13 @@ export type CraftJobResponse = {
1597
2320
  };
1598
2321
  export type CraftQueueResponse = {
1599
2322
  action: 'queue';
2323
+ /**
2324
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2325
+ */
1600
2326
  auto_docked?: boolean;
2327
+ /**
2328
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2329
+ */
1601
2330
  auto_undocked?: boolean;
1602
2331
  jobs: Array<JobView>;
1603
2332
  kind: 'queue';
@@ -1606,7 +2335,13 @@ export type CraftQueueResponse = {
1606
2335
  };
1607
2336
  export type CraftQuoteResponse = {
1608
2337
  action: 'craft' | 'recycle';
2338
+ /**
2339
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2340
+ */
1609
2341
  auto_docked?: boolean;
2342
+ /**
2343
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2344
+ */
1610
2345
  auto_undocked?: boolean;
1611
2346
  cost: EscrowSummary;
1612
2347
  credits_total: number;
@@ -1655,7 +2390,13 @@ export type CreateBuyOrderCommandResponse = ({
1655
2390
  } & BulkCreateBuyOrdersResponse);
1656
2391
  export type CreateBuyOrderResponse = {
1657
2392
  action: 'create_buy_order';
2393
+ /**
2394
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2395
+ */
1658
2396
  auto_docked?: boolean;
2397
+ /**
2398
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2399
+ */
1659
2400
  auto_undocked?: boolean;
1660
2401
  consolidated?: boolean;
1661
2402
  delivered_to_cargo?: number;
@@ -1698,7 +2439,13 @@ export type CreateSellOrderCommandResponse = ({
1698
2439
  } & BulkCreateSellOrdersResponse);
1699
2440
  export type CreateSellOrderResponse = {
1700
2441
  action: 'create_sell_order';
2442
+ /**
2443
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2444
+ */
1701
2445
  auto_docked?: boolean;
2446
+ /**
2447
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2448
+ */
1702
2449
  auto_undocked?: boolean;
1703
2450
  consolidated?: boolean;
1704
2451
  fills?: Array<Fill>;
@@ -1769,7 +2516,13 @@ export type DeleteNoteResponse = {
1769
2516
  };
1770
2517
  export type DeployAllDronesResponse = {
1771
2518
  action: 'deploy_all_drones';
2519
+ /**
2520
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2521
+ */
1772
2522
  auto_docked?: boolean;
2523
+ /**
2524
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2525
+ */
1773
2526
  auto_undocked?: boolean;
1774
2527
  bandwidth_total: number;
1775
2528
  bandwidth_used: number;
@@ -1784,7 +2537,13 @@ export type DeployDroneCommandResponse = ({
1784
2537
  } & DeployAllDronesResponse);
1785
2538
  export type DeployDroneResponse = {
1786
2539
  action: 'deploy_drone';
2540
+ /**
2541
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2542
+ */
1787
2543
  auto_docked?: boolean;
2544
+ /**
2545
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2546
+ */
1788
2547
  auto_undocked?: boolean;
1789
2548
  bandwidth_total: number;
1790
2549
  bandwidth_used: number;
@@ -1797,7 +2556,13 @@ export type DeployDroneResponse = {
1797
2556
  };
1798
2557
  export type DepositItemsResponse = {
1799
2558
  action: 'deposit_items';
2559
+ /**
2560
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2561
+ */
1800
2562
  auto_docked?: boolean;
2563
+ /**
2564
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2565
+ */
1801
2566
  auto_undocked?: boolean;
1802
2567
  cargo_remaining: number;
1803
2568
  cargo_space: number;
@@ -1807,7 +2572,13 @@ export type DepositItemsResponse = {
1807
2572
  storage_total: number;
1808
2573
  };
1809
2574
  export type DismantleOutpostResponse = {
2575
+ /**
2576
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2577
+ */
1810
2578
  auto_docked?: boolean;
2579
+ /**
2580
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2581
+ */
1811
2582
  auto_undocked?: boolean;
1812
2583
  base_id: string;
1813
2584
  fee_refunded: number;
@@ -1818,7 +2589,13 @@ export type DismantleOutpostResponse = {
1818
2589
  };
1819
2590
  export type DistressSignalResponse = {
1820
2591
  action: string;
2592
+ /**
2593
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2594
+ */
1821
2595
  auto_docked?: boolean;
2596
+ /**
2597
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2598
+ */
1822
2599
  auto_undocked?: boolean;
1823
2600
  distress_type: string;
1824
2601
  expires_seconds: number;
@@ -1831,7 +2608,13 @@ export type DistressSignalResponse = {
1831
2608
  };
1832
2609
  export type DockResponse = {
1833
2610
  action: string;
2611
+ /**
2612
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2613
+ */
1834
2614
  auto_docked?: boolean;
2615
+ /**
2616
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2617
+ */
1835
2618
  auto_undocked?: boolean;
1836
2619
  base: string;
1837
2620
  claimed_note?: string;
@@ -1908,7 +2691,13 @@ export type DroneInfo = {
1908
2691
  };
1909
2692
  export type EmpireGiftResponse = {
1910
2693
  action: 'empire_gift_credits' | 'empire_gift_items' | 'empire_gift_ship';
2694
+ /**
2695
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2696
+ */
1911
2697
  auto_docked?: boolean;
2698
+ /**
2699
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2700
+ */
1912
2701
  auto_undocked?: boolean;
1913
2702
  base_id: string;
1914
2703
  base_name: string;
@@ -2035,7 +2824,13 @@ export type EscrowedRewards = {
2035
2824
  };
2036
2825
  export type EspionageResponse = {
2037
2826
  action: string;
2827
+ /**
2828
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
2829
+ */
2038
2830
  auto_docked?: boolean;
2831
+ /**
2832
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
2833
+ */
2039
2834
  auto_undocked?: boolean;
2040
2835
  intel_type?: string;
2041
2836
  outcome: string;
@@ -2293,7 +3088,7 @@ export type FacilityFactionEntry = {
2293
3088
  crew_capacity?: number;
2294
3089
  custom_name?: string;
2295
3090
  /**
2296
- * 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
3091
+ * 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.
2297
3092
  */
2298
3093
  damaged?: boolean;
2299
3094
  facility_id: string;
@@ -2702,7 +3497,13 @@ export type FactionCreateBuyOrderCommandResponse = ({
2702
3497
  } & BulkFactionCreateBuyOrdersResponse);
2703
3498
  export type FactionCreateBuyOrderResponse = {
2704
3499
  action: string;
3500
+ /**
3501
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3502
+ */
2705
3503
  auto_docked?: boolean;
3504
+ /**
3505
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3506
+ */
2706
3507
  auto_undocked?: boolean;
2707
3508
  bucket?: string;
2708
3509
  consolidated?: boolean;
@@ -2747,7 +3548,13 @@ export type FactionCreateSellOrderCommandResponse = ({
2747
3548
  } & BulkFactionCreateSellOrdersResponse);
2748
3549
  export type FactionCreateSellOrderResponse = {
2749
3550
  action: string;
3551
+ /**
3552
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3553
+ */
2750
3554
  auto_docked?: boolean;
3555
+ /**
3556
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3557
+ */
2751
3558
  auto_undocked?: boolean;
2752
3559
  bucket?: string;
2753
3560
  consolidated?: boolean;
@@ -2788,14 +3595,26 @@ export type FactionDeleteRoomResponse = {
2788
3595
  export type FactionDepositCreditsResponse = {
2789
3596
  action: 'faction_deposit_credits';
2790
3597
  amount: number;
3598
+ /**
3599
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3600
+ */
2791
3601
  auto_docked?: boolean;
3602
+ /**
3603
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3604
+ */
2792
3605
  auto_undocked?: boolean;
2793
3606
  faction_credits: number;
2794
3607
  player_credits: number;
2795
3608
  };
2796
3609
  export type FactionDepositFuelResponse = {
2797
3610
  action: 'faction_deposit_fuel';
3611
+ /**
3612
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3613
+ */
2798
3614
  auto_docked?: boolean;
3615
+ /**
3616
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3617
+ */
2799
3618
  auto_undocked?: boolean;
2800
3619
  fuel: number;
2801
3620
  fuel_capacity: number;
@@ -2804,7 +3623,13 @@ export type FactionDepositFuelResponse = {
2804
3623
  };
2805
3624
  export type FactionDepositItemsResponse = {
2806
3625
  action: 'faction_deposit_items';
3626
+ /**
3627
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3628
+ */
2807
3629
  auto_docked?: boolean;
3630
+ /**
3631
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3632
+ */
2808
3633
  auto_undocked?: boolean;
2809
3634
  bucket?: string;
2810
3635
  bucket_id?: string;
@@ -2862,7 +3687,13 @@ export type FactionGarageStationEntry = {
2862
3687
  };
2863
3688
  export type FactionGarageStoreResponse = {
2864
3689
  action: 'faction_garage_store';
3690
+ /**
3691
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3692
+ */
2865
3693
  auto_docked?: boolean;
3694
+ /**
3695
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3696
+ */
2866
3697
  auto_undocked?: boolean;
2867
3698
  base_id: string;
2868
3699
  capacity: number;
@@ -2881,7 +3712,13 @@ export type FactionGetInvitesResponse = {
2881
3712
  };
2882
3713
  export type FactionGiftResponse = {
2883
3714
  action: 'faction_gift';
3715
+ /**
3716
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3717
+ */
2884
3718
  auto_docked?: boolean;
3719
+ /**
3720
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3721
+ */
2885
3722
  auto_undocked?: boolean;
2886
3723
  credits_sent: number;
2887
3724
  faction_id: string;
@@ -3043,27 +3880,87 @@ export type FactionPersonnelResponse = {
3043
3880
  * The personnel_action the request asked for. It is echoed back unchanged.
3044
3881
  */
3045
3882
  action: 'status' | 'recruit' | 'deposit' | 'withdraw';
3883
+ /**
3884
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3885
+ */
3046
3886
  auto_docked?: boolean;
3887
+ /**
3888
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3889
+ */
3047
3890
  auto_undocked?: boolean;
3891
+ /**
3892
+ * Base whose reserve this is. A faction holds a separate reserve at each base and they never pool.
3893
+ */
3048
3894
  base_id: string;
3895
+ /**
3896
+ * 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.
3897
+ */
3049
3898
  cost?: number;
3899
+ /**
3900
+ * 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.
3901
+ */
3050
3902
  crew_capacity: number;
3903
+ /**
3904
+ * 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.
3905
+ */
3051
3906
  crew_moved?: number;
3907
+ /**
3908
+ * 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.
3909
+ */
3052
3910
  crew_pool_remaining?: number;
3911
+ /**
3912
+ * Fit crew held in the reserve at this base after the action.
3913
+ */
3053
3914
  fit_crew: number;
3915
+ /**
3916
+ * Fit marines held in the reserve at this base after the action.
3917
+ */
3054
3918
  fit_marines: number;
3919
+ /**
3920
+ * 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.
3921
+ */
3055
3922
  inbound_crew: number;
3923
+ /**
3924
+ * Number of captured hulls in transit to this base crewed from this reserve. Each contributes to inbound_crew.
3925
+ */
3056
3926
  inbound_prizes: number;
3927
+ /**
3928
+ * Injured crew held in the reserve. Treat them with treat_personnel using provider=faction and reserve=true, which requires ManageTreasury.
3929
+ */
3057
3930
  injured_crew: number;
3931
+ /**
3932
+ * Injured marines held in the reserve.
3933
+ */
3058
3934
  injured_marines: number;
3935
+ /**
3936
+ * 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.
3937
+ */
3059
3938
  marine_capacity: number;
3939
+ /**
3940
+ * 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.
3941
+ */
3060
3942
  marine_pool_remaining?: number;
3943
+ /**
3944
+ * 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.
3945
+ */
3061
3946
  marines_moved?: number;
3947
+ /**
3948
+ * 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.
3949
+ */
3062
3950
  medical_available: number;
3951
+ /**
3952
+ * 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.
3953
+ */
3063
3954
  medical_capacity: number;
3064
3955
  };
3065
3956
  export type FactionPostMissionResponse = {
3957
+ /**
3958
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
3959
+ */
3066
3960
  auto_docked?: boolean;
3961
+ /**
3962
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
3963
+ */
3067
3964
  auto_undocked?: boolean;
3068
3965
  escrowed: EscrowedRewards;
3069
3966
  message: string;
@@ -3290,7 +4187,13 @@ export type FactionWarInfo = {
3290
4187
  export type FactionWithdrawCreditsResponse = {
3291
4188
  action: 'faction_withdraw_credits';
3292
4189
  amount: number;
4190
+ /**
4191
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4192
+ */
3293
4193
  auto_docked?: boolean;
4194
+ /**
4195
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4196
+ */
3294
4197
  auto_undocked?: boolean;
3295
4198
  faction_credits: number;
3296
4199
  player_credits: number;
@@ -3301,7 +4204,13 @@ export type FactionWithdrawInviteResponse = {
3301
4204
  };
3302
4205
  export type FactionWithdrawItemsResponse = {
3303
4206
  action: 'faction_withdraw_items';
4207
+ /**
4208
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4209
+ */
3304
4210
  auto_docked?: boolean;
4211
+ /**
4212
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4213
+ */
3305
4214
  auto_undocked?: boolean;
3306
4215
  bucket?: string;
3307
4216
  bucket_id?: string;
@@ -3456,6 +4365,10 @@ export type FleetStatusMember = {
3456
4365
  };
3457
4366
  export type FleetStatusResponse = {
3458
4367
  action: 'status';
4368
+ /**
4369
+ * True when this fleet exceeded ordinary capacity at an arena and will disband if its leader leaves the arena. Omitted or false means this is an ordinary fleet.
4370
+ */
4371
+ arena_only?: boolean;
3459
4372
  fleet_id?: string;
3460
4373
  in_fleet: boolean;
3461
4374
  invite_fleet?: string;
@@ -3463,6 +4376,9 @@ export type FleetStatusResponse = {
3463
4376
  invites?: Array<FleetStatusInvite>;
3464
4377
  is_leader?: boolean;
3465
4378
  leader?: string;
4379
+ /**
4380
+ * Maximum fleet membership for an ordinary fleet. Omitted for an unlimited arena-only fleet.
4381
+ */
3466
4382
  max_size?: number;
3467
4383
  members?: Array<FleetStatusMember>;
3468
4384
  pending_invite?: boolean;
@@ -3640,12 +4556,18 @@ export type GetBattleLogResponse = {
3640
4556
  */
3641
4557
  status: string;
3642
4558
  /**
3643
- * Total number of logged ticks for this battle
4559
+ * Total number of logged ticks for this battle, for paging.
3644
4560
  */
3645
4561
  total_ticks: number;
3646
4562
  };
3647
4563
  export type GetBattleStatusResponse = {
4564
+ /**
4565
+ * Battle being reported. Pass it to get_battle_log to replay this battle tick by tick.
4566
+ */
3648
4567
  battle_id: string;
4568
+ /**
4569
+ * 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.
4570
+ */
3649
4571
  boarding?: Array<BoardingPublicStatus>;
3650
4572
  /**
3651
4573
  * The requesting participant's own tactical state. Present only when is_participant is true; omitted for observers. Never describes another participant.
@@ -3655,9 +4577,21 @@ export type GetBattleStatusResponse = {
3655
4577
  * True when the requesting player participates in this battle and receives their own combat_state; false for an observer.
3656
4578
  */
3657
4579
  is_participant: boolean;
4580
+ /**
4581
+ * 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.
4582
+ */
3658
4583
  participants?: Array<BattleParticipant>;
4584
+ /**
4585
+ * 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.
4586
+ */
3659
4587
  sides?: Array<BattleSide>;
4588
+ /**
4589
+ * System the battle is happening in.
4590
+ */
3660
4591
  system_id: string;
4592
+ /**
4593
+ * Ticks the battle has been running. Omitted before the first tick resolves.
4594
+ */
3661
4595
  tick_duration?: number;
3662
4596
  };
3663
4597
  export type GetChatHistoryResponse = {
@@ -3731,6 +4665,14 @@ export type GetMissionsResponse = {
3731
4665
  missions: Array<MissionInfo>;
3732
4666
  };
3733
4667
  export type GetNearbyResponse = {
4668
+ /**
4669
+ * Number of entries in arena_npcs.
4670
+ */
4671
+ arena_npc_count: number;
4672
+ /**
4673
+ * Challenge enemies fighting an arena match held at this POI. Empty when no NPC challenge is in progress here. They exist only for the length of their match and cannot be attacked from outside it.
4674
+ */
4675
+ arena_npcs: Array<ArenaNpcInfo>;
3734
4676
  count: number;
3735
4677
  creature_count: number;
3736
4678
  creatures: Array<CreatureInfo>;
@@ -3864,7 +4806,13 @@ export type GiftNotification = {
3864
4806
  };
3865
4807
  export type GiftShipResponse = {
3866
4808
  action: 'gift_ship';
4809
+ /**
4810
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4811
+ */
3867
4812
  auto_docked?: boolean;
4813
+ /**
4814
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4815
+ */
3868
4816
  auto_undocked?: boolean;
3869
4817
  base_id: string;
3870
4818
  class_id: string;
@@ -3879,7 +4827,13 @@ export type GuideEntry = {
3879
4827
  title: string;
3880
4828
  };
3881
4829
  export type HuntResponse = {
4830
+ /**
4831
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4832
+ */
3882
4833
  auto_docked?: boolean;
4834
+ /**
4835
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4836
+ */
3883
4837
  auto_undocked?: boolean;
3884
4838
  command: string;
3885
4839
  message: string;
@@ -3959,7 +4913,13 @@ export type InspectResponse = {
3959
4913
  system?: MapSystemInfo;
3960
4914
  };
3961
4915
  export type InstallModResponse = {
4916
+ /**
4917
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
4918
+ */
3962
4919
  auto_docked?: boolean;
4920
+ /**
4921
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
4922
+ */
3963
4923
  auto_undocked?: boolean;
3964
4924
  cpu_used: number;
3965
4925
  current_ammo?: number;
@@ -4104,7 +5064,13 @@ export type JettisonResponse = {
4104
5064
  };
4105
5065
  export type JobCancelResponse = {
4106
5066
  action: 'job_cancel';
5067
+ /**
5068
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5069
+ */
4107
5070
  auto_docked?: boolean;
5071
+ /**
5072
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5073
+ */
4108
5074
  auto_undocked?: boolean;
4109
5075
  job_id: string;
4110
5076
  kind: 'cancel';
@@ -4127,7 +5093,13 @@ export type JobReorderResponse = {
4127
5093
  };
4128
5094
  export type JobRetargetResponse = {
4129
5095
  action: 'job_retarget';
5096
+ /**
5097
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5098
+ */
4130
5099
  auto_docked?: boolean;
5100
+ /**
5101
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5102
+ */
4131
5103
  auto_undocked?: boolean;
4132
5104
  deliver_to: string;
4133
5105
  job_id: string;
@@ -4175,7 +5147,13 @@ export type JumpCommandResponse = ({
4175
5147
  } & PathfinderJumpResponse);
4176
5148
  export type JumpResponse = {
4177
5149
  action: 'jumped' | 'pathfinder_arrival';
5150
+ /**
5151
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5152
+ */
4178
5153
  auto_docked?: boolean;
5154
+ /**
5155
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5156
+ */
4179
5157
  auto_undocked?: boolean;
4180
5158
  exploration_xp?: number;
4181
5159
  from_system: string;
@@ -4199,7 +5177,13 @@ export type ListPassengersResponse = {
4199
5177
  passengers: Array<PassengerView>;
4200
5178
  };
4201
5179
  export type ListShipForSaleResponse = {
5180
+ /**
5181
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5182
+ */
4202
5183
  auto_docked?: boolean;
5184
+ /**
5185
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5186
+ */
4203
5187
  auto_undocked?: boolean;
4204
5188
  credits_left: number;
4205
5189
  fee: number;
@@ -4227,7 +5211,13 @@ export type LoadDroneResponse = {
4227
5211
  status: string;
4228
5212
  };
4229
5213
  export type LoadPassengersResponse = {
5214
+ /**
5215
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5216
+ */
4230
5217
  auto_docked?: boolean;
5218
+ /**
5219
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5220
+ */
4231
5221
  auto_undocked?: boolean;
4232
5222
  count: number;
4233
5223
  loaded: Array<PassengerView>;
@@ -4316,7 +5306,13 @@ export type LootedModule = {
4316
5306
  type_id: string;
4317
5307
  };
4318
5308
  export type LoungeCheckInResponse = {
5309
+ /**
5310
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5311
+ */
4319
5312
  auto_docked?: boolean;
5313
+ /**
5314
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5315
+ */
4320
5316
  auto_undocked?: boolean;
4321
5317
  capacity: number;
4322
5318
  checked_in: Array<PassengerView>;
@@ -4441,7 +5437,13 @@ export type MessageResponse = {
4441
5437
  message: string;
4442
5438
  };
4443
5439
  export type MineFilteredResponse = {
5440
+ /**
5441
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5442
+ */
4444
5443
  auto_docked?: boolean;
5444
+ /**
5445
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5446
+ */
4445
5447
  auto_undocked?: boolean;
4446
5448
  filtered: boolean;
4447
5449
  kind: 'filtered';
@@ -4540,7 +5542,13 @@ export type ModifyOrderCommandResponse = ({
4540
5542
  } & BulkModifyOrdersResponse);
4541
5543
  export type ModifyOrderResponse = {
4542
5544
  action: 'modify_order';
5545
+ /**
5546
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
5547
+ */
4543
5548
  auto_docked?: boolean;
5549
+ /**
5550
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
5551
+ */
4544
5552
  auto_undocked?: boolean;
4545
5553
  kind: 'single';
4546
5554
  listing_fee?: number;
@@ -4760,6 +5768,48 @@ export type NotificationActionResult = {
4760
5768
  */
4761
5769
  tick: number;
4762
5770
  };
5771
+ export type NotificationArenaChallenge = {
5772
+ /**
5773
+ * ID of the arena battle. Present only when event is accepted.
5774
+ */
5775
+ battle_id?: string;
5776
+ /**
5777
+ * ID of the challenge.
5778
+ */
5779
+ challenge_id: string;
5780
+ /**
5781
+ * Player ID of the pilot who was challenged.
5782
+ */
5783
+ challenged_id: string;
5784
+ /**
5785
+ * Username of the challenged pilot.
5786
+ */
5787
+ challenged_name: string;
5788
+ /**
5789
+ * Player ID of the pilot who issued the challenge.
5790
+ */
5791
+ challenger_id: string;
5792
+ /**
5793
+ * Username of the challenger.
5794
+ */
5795
+ challenger_name: string;
5796
+ /**
5797
+ * What happened: received (you were challenged), accepted (your challenge started a battle), declined (the challenged pilot refused), cancelled (the challenger withdrew).
5798
+ */
5799
+ event: 'received' | 'accepted' | 'declined' | 'cancelled';
5800
+ /**
5801
+ * Server tick after which an unanswered challenge lapses.
5802
+ */
5803
+ expires_tick: number;
5804
+ /**
5805
+ * Maximum ships per side. 0 means every eligible fleet member joins.
5806
+ */
5807
+ max_side_size: number;
5808
+ /**
5809
+ * Arena POI the match is fought at.
5810
+ */
5811
+ poi_id: string;
5812
+ };
4763
5813
  export type NotificationBaseDestroyed = {
4764
5814
  attacker_id: string;
4765
5815
  attacker_name: string;
@@ -4810,7 +5860,7 @@ export type NotificationBattleEnded = {
4810
5860
  duration: number;
4811
5861
  participants?: Array<BattleEndedParticipantInfo>;
4812
5862
  /**
4813
- * 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.
5863
+ * 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.
4814
5864
  */
4815
5865
  reason: 'victory' | 'stalemate' | 'mutual_destruction' | 'interrupted';
4816
5866
  ships_captured?: number;
@@ -5567,6 +6617,10 @@ export type OwnedShipInfo = {
5567
6617
  * A point of interest (planet, asteroid belt, station, etc.).
5568
6618
  */
5569
6619
  export type Poi = {
6620
+ /**
6621
+ * True when this POI hosts consequence-free arena matches (see the arena command). Omitted when false.
6622
+ */
6623
+ arena?: boolean;
5570
6624
  base_id?: string;
5571
6625
  /**
5572
6626
  * Type-specific classification for client rendering (e.g. star spectral class, planet type, belt composition)
@@ -5595,7 +6649,13 @@ export type Poi = {
5595
6649
  };
5596
6650
  export type PackageJobResponse = {
5597
6651
  action: 'pack' | 'unpack';
6652
+ /**
6653
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6654
+ */
5598
6655
  auto_docked?: boolean;
6656
+ /**
6657
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6658
+ */
5599
6659
  auto_undocked?: boolean;
5600
6660
  escrowed: EscrowSummary;
5601
6661
  eta_ticks: number;
@@ -5622,7 +6682,13 @@ export type PackagedCraftGates = {
5622
6682
  };
5623
6683
  export type PackagedCraftQuoteResponse = {
5624
6684
  action: 'craft';
6685
+ /**
6686
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6687
+ */
5625
6688
  auto_docked?: boolean;
6689
+ /**
6690
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6691
+ */
5626
6692
  auto_undocked?: boolean;
5627
6693
  cost: EscrowSummary;
5628
6694
  credits_total: number;
@@ -5730,7 +6796,13 @@ export type PassengerView = {
5730
6796
  };
5731
6797
  export type PathfinderJumpResponse = {
5732
6798
  action: 'pathfinder_jump' | 'pathfinder_redirect';
6799
+ /**
6800
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6801
+ */
5733
6802
  auto_docked?: boolean;
6803
+ /**
6804
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6805
+ */
5734
6806
  auto_undocked?: boolean;
5735
6807
  bearing: number;
5736
6808
  message: string;
@@ -5757,7 +6829,13 @@ export type PayBountyResponse = {
5757
6829
  reputation_after: number;
5758
6830
  };
5759
6831
  export type PendingActionResponse = {
6832
+ /**
6833
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6834
+ */
5760
6835
  auto_docked?: boolean;
6836
+ /**
6837
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6838
+ */
5761
6839
  auto_undocked?: boolean;
5762
6840
  command: string;
5763
6841
  message: string;
@@ -5817,7 +6895,13 @@ export type PirateInfo = {
5817
6895
  tier: string;
5818
6896
  };
5819
6897
  export type PlaceShipBuyOrderResponse = {
6898
+ /**
6899
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
6900
+ */
5820
6901
  auto_docked?: boolean;
6902
+ /**
6903
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
6904
+ */
5821
6905
  auto_undocked?: boolean;
5822
6906
  class_id: string;
5823
6907
  credits_left: number;
@@ -5830,6 +6914,27 @@ export type PlaceShipBuyOrderResponse = {
5830
6914
  * A player account with progression, customization, and current state.
5831
6915
  */
5832
6916
  export type Player = {
6917
+ /**
6918
+ * Times each arena NPC challenge was won, keyed by challenge ID (see arena action=challenges). Omitted until the first win.
6919
+ */
6920
+ arena_won?: {
6921
+ [key: string]: number;
6922
+ };
6923
+ /**
6924
+ * Combat XP earned from arena fights today (UTC), per skill. Omitted until the player fights in an arena. Resets when the day changes.
6925
+ */
6926
+ arena_xp?: {
6927
+ /**
6928
+ * Arena XP earned today per skill ID; each skill stops earning at the daily cap
6929
+ */
6930
+ by_skill?: {
6931
+ [key: string]: number;
6932
+ };
6933
+ /**
6934
+ * UTC day the ledger covers (YYYY-MM-DD)
6935
+ */
6936
+ day?: string;
6937
+ };
5833
6938
  /**
5834
6939
  * Active empire citizenships keyed by empire ID. Independent of the immutable origin empire (player.empire).
5835
6940
  */
@@ -5953,6 +7058,18 @@ export type PlayerStats = {
5953
7058
  * Injured personnel treated aboard another player's ship
5954
7059
  */
5955
7060
  allied_personnel_treated?: number;
7061
+ /**
7062
+ * Opponents and drones the player knocked out in arena matches
7063
+ */
7064
+ arena_knockouts?: number;
7065
+ /**
7066
+ * Arena matches the player's side lost; stalemates count for neither
7067
+ */
7068
+ arena_losses?: number;
7069
+ /**
7070
+ * Arena matches the player's side won
7071
+ */
7072
+ arena_wins?: number;
5956
7073
  bases_destroyed?: number;
5957
7074
  battles_fled?: number;
5958
7075
  battles_started?: number;
@@ -6144,36 +7261,93 @@ export type PrizeInfo = {
6144
7261
  wait_reason?: 'no_route' | 'no_fuel' | 'destination_missing' | 'incapacitated' | 'manual_stop';
6145
7262
  };
6146
7263
  export type PrizeRecoveryInfo = {
7264
+ /**
7265
+ * 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.
7266
+ */
6147
7267
  actor_id: string;
6148
7268
  /**
6149
7269
  * Where the prize crew came from and returns to.
6150
7270
  */
6151
7271
  crew_disposition: 'aboard' | 'faction_reserve';
7272
+ /**
7273
+ * Base the prize is being flown to. Delivery there ends the recovery; redirect it with service_prize while it is still in transit.
7274
+ */
6152
7275
  destination_base_id: string;
7276
+ /**
7277
+ * 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.
7278
+ */
6153
7279
  fuel: number;
7280
+ /**
7281
+ * 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.
7282
+ */
6154
7283
  hull: number;
7284
+ /**
7285
+ * Maximum fuel this hull holds. fuel never exceeds it, and a refuel stops here.
7286
+ */
6155
7287
  max_fuel: number;
7288
+ /**
7289
+ * Maximum hull points for this hull. hull never exceeds it, and a repair stops here.
7290
+ */
6156
7291
  max_hull: number;
7292
+ /**
7293
+ * POI the prize is at right now. Omitted mid-jump, when it is between POIs rather than at one.
7294
+ */
6157
7295
  poi_id?: string;
7296
+ /**
7297
+ * 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.
7298
+ */
6158
7299
  prize_crew_fit: number;
7300
+ /**
7301
+ * Stable identity for this recovery operation. Pass it to service_prize.
7302
+ */
6159
7303
  prize_id: string;
7304
+ /**
7305
+ * 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.
7306
+ */
6160
7307
  return_crew_faction_id?: string;
7308
+ /**
7309
+ * Stable ship class ID for the captured hull.
7310
+ */
6161
7311
  ship_class: string;
7312
+ /**
7313
+ * 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.
7314
+ */
6162
7315
  ship_id: string;
7316
+ /**
7317
+ * Player-facing ship name. Uses the hull's custom name when it has one and otherwise the class name. Omitted when neither resolves.
7318
+ */
6163
7319
  ship_name?: string;
6164
7320
  /**
6165
7321
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
6166
7322
  */
6167
7323
  status: 'available' | 'claimed' | 'in_transit' | 'delivered' | 'destroyed' | 'expired' | 'recaptured';
7324
+ /**
7325
+ * 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.
7326
+ */
6168
7327
  system_id?: string;
7328
+ /**
7329
+ * 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.
7330
+ */
6169
7331
  transit_arrival_tick?: number;
7332
+ /**
7333
+ * POI the current leg departed. Present only while a leg is in flight.
7334
+ */
6170
7335
  transit_from_poi_id?: string;
7336
+ /**
7337
+ * System the current leg departed. Present only while status is in_transit and the prize is actually moving.
7338
+ */
6171
7339
  transit_from_system_id?: string;
6172
7340
  /**
6173
7341
  * Which leg the prize is flying. jump crosses systems. travel crosses POIs inside one system.
6174
7342
  */
6175
7343
  transit_kind?: 'jump' | 'travel';
7344
+ /**
7345
+ * POI the current leg is heading to. Present only while a leg is in flight.
7346
+ */
6176
7347
  transit_to_poi_id?: string;
7348
+ /**
7349
+ * System the current leg is heading to. Equal to transit_from_system_id on a travel leg, which stays inside one system.
7350
+ */
6177
7351
  transit_to_system_id?: string;
6178
7352
  /**
6179
7353
  * Why an in_transit prize is stalled. Omitted while the prize is moving.
@@ -6189,11 +7363,29 @@ export type PrizeServiceResponse = {
6189
7363
  * Where the prize crew came from and returns to.
6190
7364
  */
6191
7365
  crew_disposition?: 'aboard' | 'faction_reserve';
7366
+ /**
7367
+ * 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.
7368
+ */
6192
7369
  destination_base_id?: string;
7370
+ /**
7371
+ * 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.
7372
+ */
6193
7373
  fuel_transferred?: number;
7374
+ /**
7375
+ * 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.
7376
+ */
6194
7377
  hull_repaired?: number;
7378
+ /**
7379
+ * The recovery operation this action applied to, echoed back.
7380
+ */
6195
7381
  prize_id: string;
7382
+ /**
7383
+ * Repair kits consumed from your own cargo to deliver hull_repaired. Present only for action=repair; omitted when none were spent.
7384
+ */
6196
7385
  repair_kits_used?: number;
7386
+ /**
7387
+ * The captured hull the prize is flying.
7388
+ */
6197
7389
  ship_id: string;
6198
7390
  /**
6199
7391
  * Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
@@ -6310,12 +7502,33 @@ export type RecoveredBattleSummary = {
6310
7502
  total_damage: number;
6311
7503
  };
6312
7504
  export type RecruitPersonnelResponse = {
7505
+ /**
7506
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7507
+ */
6313
7508
  auto_docked?: boolean;
7509
+ /**
7510
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7511
+ */
6314
7512
  auto_undocked?: boolean;
7513
+ /**
7514
+ * 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.
7515
+ */
6315
7516
  cost: number;
7517
+ /**
7518
+ * 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.
7519
+ */
6316
7520
  crew_pool_remaining?: number;
7521
+ /**
7522
+ * Fit crew actually hired and added to the ship. Zero when capacity or credits admitted none. Crew are filled before marines.
7523
+ */
6317
7524
  crew_recruited: number;
7525
+ /**
7526
+ * 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.
7527
+ */
6318
7528
  marine_pool_remaining?: number;
7529
+ /**
7530
+ * Fit marines actually hired and added to the ship. Marines are filled from whatever credits remain after crew.
7531
+ */
6319
7532
  marines_recruited: number;
6320
7533
  };
6321
7534
  export type RecycleJobResponse = ({
@@ -6332,7 +7545,13 @@ export type RecycleJobResponse = ({
6332
7545
  kind: 'retarget';
6333
7546
  } & JobRetargetResponse);
6334
7547
  export type RefitShipResponse = {
7548
+ /**
7549
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7550
+ */
6335
7551
  auto_docked?: boolean;
7552
+ /**
7553
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7554
+ */
6336
7555
  auto_undocked?: boolean;
6337
7556
  cargo_returned: number;
6338
7557
  class_id: string;
@@ -6512,7 +7731,13 @@ export type ScrapShipResponse = {
6512
7731
  };
6513
7732
  export type ScrapWreckResponse = {
6514
7733
  action: string;
7734
+ /**
7735
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7736
+ */
6515
7737
  auto_docked?: boolean;
7738
+ /**
7739
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7740
+ */
6516
7741
  auto_undocked?: boolean;
6517
7742
  materials: Array<SalvageMaterial>;
6518
7743
  message: string;
@@ -6528,18 +7753,45 @@ export type SearchSystemsResponse = {
6528
7753
  total_found: number;
6529
7754
  };
6530
7755
  export type SelfDestructResponse = {
7756
+ /**
7757
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7758
+ */
6531
7759
  auto_docked?: boolean;
7760
+ /**
7761
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7762
+ */
6532
7763
  auto_undocked?: boolean;
7764
+ /**
7765
+ * 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.
7766
+ */
6533
7767
  cause: string;
7768
+ /**
7769
+ * Human-readable outcome including the fee charged and any trading restriction. Machine-readable equivalents are in the other fields.
7770
+ */
6534
7771
  message: string;
7772
+ /**
7773
+ * 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.
7774
+ */
6535
7775
  self_destruct_fee?: number;
7776
+ /**
7777
+ * 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.
7778
+ */
6536
7779
  trading_restricted_until?: string;
7780
+ /**
7781
+ * 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.
7782
+ */
6537
7783
  wreck_suppressed?: boolean;
6538
7784
  };
6539
7785
  export type SellResponse = {
6540
7786
  action: string;
7787
+ /**
7788
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7789
+ */
6541
7790
  auto_docked?: boolean;
6542
7791
  auto_listed?: AutoListedOrder;
7792
+ /**
7793
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7794
+ */
6543
7795
  auto_undocked?: boolean;
6544
7796
  fills: Array<Fill>;
6545
7797
  item: string;
@@ -6555,7 +7807,13 @@ export type SellResponse = {
6555
7807
  xp_gained?: number;
6556
7808
  };
6557
7809
  export type SellShipToOrderResponse = {
7810
+ /**
7811
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7812
+ */
6558
7813
  auto_docked?: boolean;
7814
+ /**
7815
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7816
+ */
6559
7817
  auto_undocked?: boolean;
6560
7818
  class_id: string;
6561
7819
  credits_left: number;
@@ -6565,11 +7823,17 @@ export type SellShipToOrderResponse = {
6565
7823
  };
6566
7824
  export type SellWreckResponse = {
6567
7825
  action: string;
7826
+ /**
7827
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7828
+ */
6568
7829
  auto_docked?: boolean;
7830
+ /**
7831
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7832
+ */
6569
7833
  auto_undocked?: boolean;
6570
- cargo_value?: number;
6571
7834
  message: string;
6572
7835
  new_balance: number;
7836
+ offer: number;
6573
7837
  salvage_value?: number;
6574
7838
  ship_class?: string;
6575
7839
  total_payout: number;
@@ -6580,7 +7844,13 @@ export type SendGiftResponse = {
6580
7844
  * Completed gift operation including station material donations.
6581
7845
  */
6582
7846
  action: 'send_gift';
7847
+ /**
7848
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7849
+ */
6583
7850
  auto_docked?: boolean;
7851
+ /**
7852
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7853
+ */
6584
7854
  auto_undocked?: boolean;
6585
7855
  /**
6586
7856
  * Canonical Base ID where gifted items were deposited. A station gift always names the station at which the donor is docked.
@@ -6650,7 +7920,13 @@ export type SetFacilityNameResponse = {
6650
7920
  message: string;
6651
7921
  };
6652
7922
  export type SetHomeBaseResponse = {
7923
+ /**
7924
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
7925
+ */
6653
7926
  auto_docked?: boolean;
7927
+ /**
7928
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
7929
+ */
6654
7930
  auto_undocked?: boolean;
6655
7931
  home_base: string;
6656
7932
  message: string;
@@ -7506,7 +8782,13 @@ export type SubscribeObservationResponse = {
7506
8782
  };
7507
8783
  export type SupplyCommissionResponse = {
7508
8784
  all_sourced: boolean;
8785
+ /**
8786
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8787
+ */
7509
8788
  auto_docked?: boolean;
8789
+ /**
8790
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8791
+ */
7510
8792
  auto_undocked?: boolean;
7511
8793
  commission_id: string;
7512
8794
  commission_status: string;
@@ -7544,7 +8826,13 @@ export type SurveyedPoi = {
7544
8826
  export type SwitchShipResponse = {
7545
8827
  active_ship_class: string;
7546
8828
  active_ship_id: string;
8829
+ /**
8830
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8831
+ */
7547
8832
  auto_docked?: boolean;
8833
+ /**
8834
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8835
+ */
7548
8836
  auto_undocked?: boolean;
7549
8837
  cargo_note?: string;
7550
8838
  cargo_to_storage?: Array<SoldCargoItem>;
@@ -7687,7 +8975,13 @@ export type TaxableIncomeByCategoryEntry = {
7687
8975
  };
7688
8976
  export type TowWreckResponse = {
7689
8977
  action: string;
8978
+ /**
8979
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
8980
+ */
7690
8981
  auto_docked?: boolean;
8982
+ /**
8983
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
8984
+ */
7691
8985
  auto_undocked?: boolean;
7692
8986
  cargo_count?: number;
7693
8987
  insured: boolean;
@@ -7754,7 +9048,13 @@ export type TradeOfferResponse = {
7754
9048
  export type TransferCreditsResponse = {
7755
9049
  action: 'transfer';
7756
9050
  amount: number;
9051
+ /**
9052
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9053
+ */
7757
9054
  auto_docked?: boolean;
9055
+ /**
9056
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9057
+ */
7758
9058
  auto_undocked?: boolean;
7759
9059
  dest_credits: number;
7760
9060
  destination: string;
@@ -7763,7 +9063,13 @@ export type TransferCreditsResponse = {
7763
9063
  };
7764
9064
  export type TransferItemsResponse = {
7765
9065
  action: 'transfer';
9066
+ /**
9067
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9068
+ */
7766
9069
  auto_docked?: boolean;
9070
+ /**
9071
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9072
+ */
7767
9073
  auto_undocked?: boolean;
7768
9074
  bucket?: string;
7769
9075
  bucket_id?: string;
@@ -7777,7 +9083,13 @@ export type TransferItemsResponse = {
7777
9083
  source_remaining: number;
7778
9084
  };
7779
9085
  export type TransferPassengersResponse = {
9086
+ /**
9087
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9088
+ */
7780
9089
  auto_docked?: boolean;
9090
+ /**
9091
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9092
+ */
7781
9093
  auto_undocked?: boolean;
7782
9094
  count: number;
7783
9095
  kind: 'transfer';
@@ -7789,12 +9101,33 @@ export type TransferPassengersResponse = {
7789
9101
  transferred: Array<PassengerView>;
7790
9102
  };
7791
9103
  export type TransferPersonnelResponse = {
9104
+ /**
9105
+ * Fit crew moved from your ship to the target's.
9106
+ */
7792
9107
  fit_crew_transferred: number;
9108
+ /**
9109
+ * Fit marines moved from your ship to the target's.
9110
+ */
7793
9111
  fit_marines_transferred: number;
9112
+ /**
9113
+ * 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.
9114
+ */
7794
9115
  injured_crew_swapped: number;
9116
+ /**
9117
+ * Injured crew moved from your ship to the target's — how a casualty is handed to a ship with a medical module.
9118
+ */
7795
9119
  injured_crew_transferred: number;
9120
+ /**
9121
+ * 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.
9122
+ */
7796
9123
  injured_marines_swapped: number;
9124
+ /**
9125
+ * Injured marines moved from your ship to the target's.
9126
+ */
7797
9127
  injured_marines_transferred: number;
9128
+ /**
9129
+ * Username of the ally who received the transfer.
9130
+ */
7798
9131
  target: string;
7799
9132
  };
7800
9133
  export type TransitLoungeView = {
@@ -7813,7 +9146,13 @@ export type TravelNearbyPlayer = {
7813
9146
  };
7814
9147
  export type TravelResponse = {
7815
9148
  action: string;
9149
+ /**
9150
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9151
+ */
7816
9152
  auto_docked?: boolean;
9153
+ /**
9154
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9155
+ */
7817
9156
  auto_undocked?: boolean;
7818
9157
  message?: string;
7819
9158
  offline_collapsed: number;
@@ -7827,15 +9166,33 @@ export type TravelResponse = {
7827
9166
  };
7828
9167
  };
7829
9168
  export type TreatPersonnelResponse = {
9169
+ /**
9170
+ * 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.
9171
+ */
7830
9172
  cost?: number;
9173
+ /**
9174
+ * Injured crew moved back to fit. Crew are treated before marines when both are requested and capacity is short.
9175
+ */
7831
9176
  crew_treated: number;
9177
+ /**
9178
+ * Injured marines moved back to fit.
9179
+ */
7832
9180
  marines_treated: number;
9181
+ /**
9182
+ * 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.
9183
+ */
7833
9184
  medical_pool_remaining?: number;
7834
9185
  /**
7835
9186
  * Which medical supply paid for the treatment. station is the base infirmary. faction is your faction reserve. field is shipboard medical supplies.
7836
9187
  */
7837
9188
  source: 'station' | 'faction' | 'field';
9189
+ /**
9190
+ * 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.
9191
+ */
7838
9192
  supplies_used?: number;
9193
+ /**
9194
+ * Username of the player whose ship was treated. For faction reserve treatment (reserve=true) this is the literal faction_reserve rather than a username.
9195
+ */
7839
9196
  target: string;
7840
9197
  };
7841
9198
  export type TrimmedBase = {
@@ -7872,7 +9229,13 @@ export type UndockResponse = {
7872
9229
  action: string;
7873
9230
  };
7874
9231
  export type UninstallModResponse = {
9232
+ /**
9233
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9234
+ */
7875
9235
  auto_docked?: boolean;
9236
+ /**
9237
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9238
+ */
7876
9239
  auto_undocked?: boolean;
7877
9240
  cpu_used: number;
7878
9241
  message: string;
@@ -7880,7 +9243,13 @@ export type UninstallModResponse = {
7880
9243
  power_used: number;
7881
9244
  };
7882
9245
  export type UnloadAllPassengersResponse = {
9246
+ /**
9247
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9248
+ */
7883
9249
  auto_docked?: boolean;
9250
+ /**
9251
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9252
+ */
7884
9253
  auto_undocked?: boolean;
7885
9254
  delivered: Array<PassengerView>;
7886
9255
  fare_collected: number;
@@ -7906,7 +9275,13 @@ export type UnloadPassengerCommandResponse = ({
7906
9275
  kind: 'lounge_checkin';
7907
9276
  } & LoungeCheckInResponse);
7908
9277
  export type UnloadPassengerResponse = {
9278
+ /**
9279
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
9280
+ */
7909
9281
  auto_docked?: boolean;
9282
+ /**
9283
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
9284
+ */
7910
9285
  auto_undocked?: boolean;
7911
9286
  base_fare?: number;
7912
9287
  delivered: boolean;
@@ -8377,7 +9752,7 @@ export type V2Response = {
8377
9752
  /**
8378
9753
  * Notification payload. Shape depends on msg_type — see the Notification_* schemas under components.schemas.
8379
9754
  */
8380
- 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;
9755
+ 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;
8381
9756
  id?: string;
8382
9757
  /**
8383
9758
  * 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.
@@ -8679,7 +10054,13 @@ export type WildlifeSurvey = {
8679
10054
  };
8680
10055
  export type WithdrawItemsResponse = {
8681
10056
  action: 'withdraw_items';
10057
+ /**
10058
+ * True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
10059
+ */
8682
10060
  auto_docked?: boolean;
10061
+ /**
10062
+ * True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
10063
+ */
8683
10064
  auto_undocked?: boolean;
8684
10065
  cargo_space: number;
8685
10066
  cargo_total: number;
@@ -8697,6 +10078,9 @@ export type ZoneMoveLogEntry = {
8697
10078
  new_zone: string;
8698
10079
  old_zone: string;
8699
10080
  player_id: string;
10081
+ /**
10082
+ * 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.
10083
+ */
8700
10084
  reason: string;
8701
10085
  };
8702
10086
  export type GetCatalogDumpData = {
@@ -8888,7 +10272,7 @@ export type SpacemoltAcceptMissionResponse = SpacemoltAcceptMissionResponses[key
8888
10272
  export type SpacemoltAttackData = {
8889
10273
  body?: {
8890
10274
  /**
8891
- * ID of the target: a player, pirate, empire NPC, wildlife creature, intact-prize actor, or station. Prize actor IDs come from get_nearby. Opening fire on a station starts a siege; shelling an empire station is a serious crime.
10275
+ * ID of the target: a player, pirate, empire NPC, wildlife creature, intact-prize actor, or station. Prize actor IDs come from get_nearby. Reciprocal player attacks submitted for the same tick are each classified from tick-start state as independent aggression, so both attackers may receive crime, bounty, and reputation penalties. Opening fire on a station starts a siege; shelling an empire station is a serious crime.
8892
10276
  */
8893
10277
  id: string;
8894
10278
  };
@@ -11182,6 +12566,279 @@ export type SpacemoltViewCompletedMissionResponses = {
11182
12566
  };
11183
12567
  };
11184
12568
  export type SpacemoltViewCompletedMissionResponse = SpacemoltViewCompletedMissionResponses[keyof SpacemoltViewCompletedMissionResponses];
12569
+ export type SpacemoltArenaAcceptData = {
12570
+ body?: {
12571
+ [key: string]: unknown;
12572
+ };
12573
+ path?: never;
12574
+ query?: never;
12575
+ url: '/api/v2/spacemolt_arena/accept';
12576
+ };
12577
+ export type SpacemoltArenaAcceptErrors = {
12578
+ /**
12579
+ * Bad request — invalid params, unknown command, or game error
12580
+ */
12581
+ 400: unknown;
12582
+ /**
12583
+ * Not authenticated — missing or invalid session
12584
+ */
12585
+ 401: unknown;
12586
+ /**
12587
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12588
+ */
12589
+ 429: unknown;
12590
+ };
12591
+ export type SpacemoltArenaAcceptResponses = {
12592
+ /**
12593
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaAcceptResponse)
12594
+ */
12595
+ 200: V2Response & {
12596
+ structuredContent?: V2GameState & {
12597
+ details?: ArenaAcceptResponse;
12598
+ };
12599
+ };
12600
+ };
12601
+ export type SpacemoltArenaAcceptResponse = SpacemoltArenaAcceptResponses[keyof SpacemoltArenaAcceptResponses];
12602
+ export type SpacemoltArenaCancelData = {
12603
+ body?: {
12604
+ [key: string]: unknown;
12605
+ };
12606
+ path?: never;
12607
+ query?: never;
12608
+ url: '/api/v2/spacemolt_arena/cancel';
12609
+ };
12610
+ export type SpacemoltArenaCancelErrors = {
12611
+ /**
12612
+ * Bad request — invalid params, unknown command, or game error
12613
+ */
12614
+ 400: unknown;
12615
+ /**
12616
+ * Not authenticated — missing or invalid session
12617
+ */
12618
+ 401: unknown;
12619
+ /**
12620
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12621
+ */
12622
+ 429: unknown;
12623
+ };
12624
+ export type SpacemoltArenaCancelResponses = {
12625
+ /**
12626
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaActionResponse)
12627
+ */
12628
+ 200: V2Response & {
12629
+ structuredContent?: V2GameState & {
12630
+ details?: ArenaActionResponse;
12631
+ };
12632
+ };
12633
+ };
12634
+ export type SpacemoltArenaCancelResponse = SpacemoltArenaCancelResponses[keyof SpacemoltArenaCancelResponses];
12635
+ export type SpacemoltArenaChallengeData = {
12636
+ body?: {
12637
+ /**
12638
+ * Player name or ID to challenge (for 'challenge')
12639
+ */
12640
+ id: string;
12641
+ /**
12642
+ * For 'challenge': maximum ships per side. 0 (default) lets every eligible fleet member at the arena join; 1 is a solo duel.
12643
+ */
12644
+ max_side_size?: number;
12645
+ };
12646
+ path?: never;
12647
+ query?: never;
12648
+ url: '/api/v2/spacemolt_arena/challenge';
12649
+ };
12650
+ export type SpacemoltArenaChallengeErrors = {
12651
+ /**
12652
+ * Bad request — invalid params, unknown command, or game error
12653
+ */
12654
+ 400: unknown;
12655
+ /**
12656
+ * Not authenticated — missing or invalid session
12657
+ */
12658
+ 401: unknown;
12659
+ /**
12660
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12661
+ */
12662
+ 429: unknown;
12663
+ };
12664
+ export type SpacemoltArenaChallengeResponses = {
12665
+ /**
12666
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaChallengeResponse)
12667
+ */
12668
+ 200: V2Response & {
12669
+ structuredContent?: V2GameState & {
12670
+ details?: ArenaChallengeResponse;
12671
+ };
12672
+ };
12673
+ };
12674
+ export type SpacemoltArenaChallengeResponse = SpacemoltArenaChallengeResponses[keyof SpacemoltArenaChallengeResponses];
12675
+ export type SpacemoltArenaChallengesData = {
12676
+ body?: {
12677
+ [key: string]: unknown;
12678
+ };
12679
+ path?: never;
12680
+ query?: never;
12681
+ url: '/api/v2/spacemolt_arena/challenges';
12682
+ };
12683
+ export type SpacemoltArenaChallengesErrors = {
12684
+ /**
12685
+ * Bad request — invalid params, unknown command, or game error
12686
+ */
12687
+ 400: unknown;
12688
+ /**
12689
+ * Not authenticated — missing or invalid session
12690
+ */
12691
+ 401: unknown;
12692
+ /**
12693
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12694
+ */
12695
+ 429: unknown;
12696
+ };
12697
+ export type SpacemoltArenaChallengesResponses = {
12698
+ /**
12699
+ * Result. structuredContent type: ArenaChallengesResponse
12700
+ */
12701
+ 200: V2Response & {
12702
+ structuredContent?: ArenaChallengesResponse;
12703
+ };
12704
+ };
12705
+ export type SpacemoltArenaChallengesResponse = SpacemoltArenaChallengesResponses[keyof SpacemoltArenaChallengesResponses];
12706
+ export type SpacemoltArenaDeclineData = {
12707
+ body?: {
12708
+ [key: string]: unknown;
12709
+ };
12710
+ path?: never;
12711
+ query?: never;
12712
+ url: '/api/v2/spacemolt_arena/decline';
12713
+ };
12714
+ export type SpacemoltArenaDeclineErrors = {
12715
+ /**
12716
+ * Bad request — invalid params, unknown command, or game error
12717
+ */
12718
+ 400: unknown;
12719
+ /**
12720
+ * Not authenticated — missing or invalid session
12721
+ */
12722
+ 401: unknown;
12723
+ /**
12724
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12725
+ */
12726
+ 429: unknown;
12727
+ };
12728
+ export type SpacemoltArenaDeclineResponses = {
12729
+ /**
12730
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaActionResponse)
12731
+ */
12732
+ 200: V2Response & {
12733
+ structuredContent?: V2GameState & {
12734
+ details?: ArenaActionResponse;
12735
+ };
12736
+ };
12737
+ };
12738
+ export type SpacemoltArenaDeclineResponse = SpacemoltArenaDeclineResponses[keyof SpacemoltArenaDeclineResponses];
12739
+ export type SpacemoltArenaFightData = {
12740
+ body?: {
12741
+ /**
12742
+ * For 'fight': the NPC challenge to start, from 'challenges'.
12743
+ */
12744
+ id: string;
12745
+ };
12746
+ path?: never;
12747
+ query?: never;
12748
+ url: '/api/v2/spacemolt_arena/fight';
12749
+ };
12750
+ export type SpacemoltArenaFightErrors = {
12751
+ /**
12752
+ * Bad request — invalid params, unknown command, or game error
12753
+ */
12754
+ 400: unknown;
12755
+ /**
12756
+ * Not authenticated — missing or invalid session
12757
+ */
12758
+ 401: unknown;
12759
+ /**
12760
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12761
+ */
12762
+ 429: unknown;
12763
+ };
12764
+ export type SpacemoltArenaFightResponses = {
12765
+ /**
12766
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ArenaFightResponse)
12767
+ */
12768
+ 200: V2Response & {
12769
+ structuredContent?: V2GameState & {
12770
+ details?: ArenaFightResponse;
12771
+ };
12772
+ };
12773
+ };
12774
+ export type SpacemoltArenaFightResponse = SpacemoltArenaFightResponses[keyof SpacemoltArenaFightResponses];
12775
+ export type SpacemoltArenaHelpData = {
12776
+ body?: never;
12777
+ path?: never;
12778
+ query?: {
12779
+ /**
12780
+ * Optional: focus help on an action name, category, or search keyword. Searches across all tools.
12781
+ */
12782
+ topic?: string;
12783
+ };
12784
+ url: '/api/v2/spacemolt_arena/help';
12785
+ };
12786
+ export type SpacemoltArenaHelpResponses = {
12787
+ /**
12788
+ * Help text
12789
+ */
12790
+ 200: V2Response;
12791
+ };
12792
+ export type SpacemoltArenaHelpResponse = SpacemoltArenaHelpResponses[keyof SpacemoltArenaHelpResponses];
12793
+ export type SpacemoltArenaHelpPostData = {
12794
+ body?: {
12795
+ /**
12796
+ * Optional: focus help on an action name, category, or search keyword. Searches across all tools.
12797
+ */
12798
+ topic?: string;
12799
+ };
12800
+ path?: never;
12801
+ query?: never;
12802
+ url: '/api/v2/spacemolt_arena/help';
12803
+ };
12804
+ export type SpacemoltArenaHelpPostResponses = {
12805
+ /**
12806
+ * Help text
12807
+ */
12808
+ 200: V2Response;
12809
+ };
12810
+ export type SpacemoltArenaHelpPostResponse = SpacemoltArenaHelpPostResponses[keyof SpacemoltArenaHelpPostResponses];
12811
+ export type SpacemoltArenaStatusData = {
12812
+ body?: {
12813
+ [key: string]: unknown;
12814
+ };
12815
+ path?: never;
12816
+ query?: never;
12817
+ url: '/api/v2/spacemolt_arena/status';
12818
+ };
12819
+ export type SpacemoltArenaStatusErrors = {
12820
+ /**
12821
+ * Bad request — invalid params, unknown command, or game error
12822
+ */
12823
+ 400: unknown;
12824
+ /**
12825
+ * Not authenticated — missing or invalid session
12826
+ */
12827
+ 401: unknown;
12828
+ /**
12829
+ * Rate limited — mutations allow 1 per tick (10 seconds)
12830
+ */
12831
+ 429: unknown;
12832
+ };
12833
+ export type SpacemoltArenaStatusResponses = {
12834
+ /**
12835
+ * Result. structuredContent type: ArenaStatusResponse
12836
+ */
12837
+ 200: V2Response & {
12838
+ structuredContent?: ArenaStatusResponse;
12839
+ };
12840
+ };
12841
+ export type SpacemoltArenaStatusResponse = SpacemoltArenaStatusResponses[keyof SpacemoltArenaStatusResponses];
11185
12842
  export type SpacemoltAuthClaimData = {
11186
12843
  body?: {
11187
12844
  /**
@@ -11714,7 +13371,7 @@ export type SpacemoltBattleSelfDestructResponse = SpacemoltBattleSelfDestructRes
11714
13371
  export type SpacemoltBattleStanceData = {
11715
13372
  body?: {
11716
13373
  /**
11717
- * 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.
13374
+ * 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. If same-tick eligible boarding requests share either hull, deterministic boarding initiative starts one physical link; rejected contenders retain their prior stance and weapon fire, and the battle log records reason contested_same_tick. Changing away from board begins non-instant withdrawal.
11718
13375
  */
11719
13376
  id: 'fire' | 'evade' | 'brace' | 'flee' | 'board';
11720
13377
  /**
@@ -11722,7 +13379,7 @@ export type SpacemoltBattleStanceData = {
11722
13379
  */
11723
13380
  marines?: number;
11724
13381
  /**
11725
- * ID or name of the enemy — required when focusing a target and when entering the board stance
13382
+ * 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.
11726
13383
  */
11727
13384
  target?: string;
11728
13385
  };
@@ -11821,7 +13478,7 @@ export type SpacemoltBattleSummaryResponse = SpacemoltBattleSummaryResponses[key
11821
13478
  export type SpacemoltBattleTargetData = {
11822
13479
  body?: {
11823
13480
  /**
11824
- * ID or name of the enemy — required when focusing a target and when entering the board stance
13481
+ * 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.
11825
13482
  */
11826
13483
  id: string;
11827
13484
  };
@@ -17160,7 +18817,7 @@ export type SpacemoltMarketViewMarketData = {
17160
18817
  */
17161
18818
  category?: string;
17162
18819
  /**
17163
- * Optional: show ONLY your faction's private Company Store listings (members-only buy/sell orders, hidden from non-members). Requires faction membership.
18820
+ * 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.
17164
18821
  */
17165
18822
  company_store?: boolean;
17166
18823
  /**