@spacemolt/lib 14.2.1 → 15.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/COMMANDS.md +6 -6
- package/dist/account.d.ts +3 -3
- package/dist/generated/actions.gen.d.ts +1 -1
- package/dist/generated/commands.gen.d.ts +19 -14
- package/dist/generated/notifications.gen.d.ts +11 -3
- package/dist/generated/openapi/types.gen.d.ts +1079 -46
- package/dist/index.js +56 -20
- package/dist/push-frames.d.ts +6 -5
- package/package.json +1 -1
|
@@ -224,7 +224,7 @@ export type ArenaChallengeDefInfo = {
|
|
|
224
224
|
*/
|
|
225
225
|
description: string;
|
|
226
226
|
/**
|
|
227
|
-
* The enemy ships spawned
|
|
227
|
+
* The enemy ships spawned when the fight starts, one entry per line of the definition. Reinforcement waves are listed separately in waves.
|
|
228
228
|
*/
|
|
229
229
|
enemies: Array<ArenaEnemyInfo>;
|
|
230
230
|
/**
|
|
@@ -235,6 +235,10 @@ export type ArenaChallengeDefInfo = {
|
|
|
235
235
|
* Display name of the challenge.
|
|
236
236
|
*/
|
|
237
237
|
name: string;
|
|
238
|
+
/**
|
|
239
|
+
* How the fight is won beyond knocking out every enemy. Every zero or omitted field is off, so an all-zero objective means the last side standing wins.
|
|
240
|
+
*/
|
|
241
|
+
objective: ArenaObjective;
|
|
238
242
|
/**
|
|
239
243
|
* Arena POI the fight is held at. You must be undocked there to start it.
|
|
240
244
|
*/
|
|
@@ -259,6 +263,10 @@ export type ArenaChallengeDefInfo = {
|
|
|
259
263
|
* Position within the series, from 1. Higher stages are harder.
|
|
260
264
|
*/
|
|
261
265
|
stage: number;
|
|
266
|
+
/**
|
|
267
|
+
* Reinforcements that join the enemy side mid-match, in arrival order. Empty when the opening enemies are the whole fight.
|
|
268
|
+
*/
|
|
269
|
+
waves: Array<ArenaWaveInfo>;
|
|
262
270
|
/**
|
|
263
271
|
* Times you have won this challenge. 0 until your first win.
|
|
264
272
|
*/
|
|
@@ -344,6 +352,10 @@ export type ArenaEnemyInfo = {
|
|
|
344
352
|
* How many ships of this line the challenge spawns. Always at least 1.
|
|
345
353
|
*/
|
|
346
354
|
count: number;
|
|
355
|
+
/**
|
|
356
|
+
* True when this line runs for the ring beacons instead of fighting. It takes the flee stance from its first tick, and a challenge whose objective sets no_enemy_escape is lost the moment one gets away — stop it with damage or warp tackle.
|
|
357
|
+
*/
|
|
358
|
+
flees: boolean;
|
|
347
359
|
/**
|
|
348
360
|
* True for the named headline enemy of the fight. Your ship opens targeting the boss when there is one.
|
|
349
361
|
*/
|
|
@@ -375,7 +387,7 @@ export type ArenaFightResponse = {
|
|
|
375
387
|
*/
|
|
376
388
|
challenge_id: string;
|
|
377
389
|
/**
|
|
378
|
-
* The enemy lines
|
|
390
|
+
* The enemy lines the challenge opens with, as listed by arena action=challenges. Reinforcement waves are not spawned yet and are listed in waves.
|
|
379
391
|
*/
|
|
380
392
|
enemies: Array<ArenaEnemyInfo>;
|
|
381
393
|
/**
|
|
@@ -390,20 +402,62 @@ export type ArenaFightResponse = {
|
|
|
390
402
|
* Display name of the challenge.
|
|
391
403
|
*/
|
|
392
404
|
name: string;
|
|
405
|
+
/**
|
|
406
|
+
* How this fight is won beyond knocking out every enemy. Every zero or omitted field is off. Track it live with arena action=status.
|
|
407
|
+
*/
|
|
408
|
+
objective: ArenaObjective;
|
|
393
409
|
/**
|
|
394
410
|
* 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
411
|
*/
|
|
396
412
|
participants: Array<ArenaParticipantInfo>;
|
|
413
|
+
/**
|
|
414
|
+
* Reinforcements that will join the enemy side later in this match, in arrival order. Empty when the opening enemies are the whole fight.
|
|
415
|
+
*/
|
|
416
|
+
waves: Array<ArenaWaveInfo>;
|
|
397
417
|
/**
|
|
398
418
|
* Your battle side ID. Fleet members share it.
|
|
399
419
|
*/
|
|
400
420
|
your_side: number;
|
|
401
421
|
};
|
|
422
|
+
export type ArenaMatchInfo = {
|
|
423
|
+
/**
|
|
424
|
+
* ID of the NPC challenge being fought.
|
|
425
|
+
*/
|
|
426
|
+
challenge_id: string;
|
|
427
|
+
/**
|
|
428
|
+
* Ticks since the match started. 0 on the tick it began.
|
|
429
|
+
*/
|
|
430
|
+
elapsed_ticks: number;
|
|
431
|
+
/**
|
|
432
|
+
* Challenge enemies still in the fight. Reinforcement waves that have not arrived yet are not counted.
|
|
433
|
+
*/
|
|
434
|
+
enemies_remaining: number;
|
|
435
|
+
/**
|
|
436
|
+
* Display name of the challenge.
|
|
437
|
+
*/
|
|
438
|
+
name: string;
|
|
439
|
+
/**
|
|
440
|
+
* The challenge's win condition, as listed by arena action=challenges. Every zero or omitted field is off.
|
|
441
|
+
*/
|
|
442
|
+
objective: ArenaObjective;
|
|
443
|
+
/**
|
|
444
|
+
* Ticks left before the objective's survive_ticks or time_limit_ticks deadline resolves the match. Omitted when the challenge sets neither; 0 means the deadline falls this tick.
|
|
445
|
+
*/
|
|
446
|
+
ticks_remaining?: number;
|
|
447
|
+
/**
|
|
448
|
+
* Reinforcement waves that have not arrived yet. The match cannot end while one is still due and your side is still standing.
|
|
449
|
+
*/
|
|
450
|
+
waves_remaining: number;
|
|
451
|
+
};
|
|
402
452
|
export type ArenaNpcInfo = {
|
|
403
453
|
/**
|
|
404
454
|
* ID of the arena match the enemy is fighting in. Enemies exist only for the length of their match.
|
|
405
455
|
*/
|
|
406
456
|
battle_id: string;
|
|
457
|
+
/**
|
|
458
|
+
* True when the enemy is running for the ring beacons instead of fighting. Its challenge is lost the moment it gets away.
|
|
459
|
+
*/
|
|
460
|
+
flees: boolean;
|
|
407
461
|
/**
|
|
408
462
|
* Current hull points.
|
|
409
463
|
*/
|
|
@@ -453,6 +507,38 @@ export type ArenaNpcInfo = {
|
|
|
453
507
|
*/
|
|
454
508
|
status?: string;
|
|
455
509
|
};
|
|
510
|
+
export type ArenaObjective = {
|
|
511
|
+
/**
|
|
512
|
+
* True when an enemy that escapes the ring loses you the match. Challenges that set it spawn at least one enemy that runs from the first tick (flees on its enemy line); stop it with damage or warp tackle. Omitted = an enemy that breaks contact is simply out of the fight.
|
|
513
|
+
*/
|
|
514
|
+
no_enemy_escape?: boolean;
|
|
515
|
+
/**
|
|
516
|
+
* Ticks your side must last to win, counted from the first tick of the match. The match ends the moment you reach it and any enemy still standing is called off. Omitted or 0 = you win by knocking out every enemy instead.
|
|
517
|
+
*/
|
|
518
|
+
survive_ticks?: number;
|
|
519
|
+
/**
|
|
520
|
+
* Ticks you have to knock out every enemy. The match is lost the moment you reach it with one still standing. Omitted or 0 = no time limit.
|
|
521
|
+
*/
|
|
522
|
+
time_limit_ticks?: number;
|
|
523
|
+
};
|
|
524
|
+
export type ArenaObjectiveEnemy = {
|
|
525
|
+
/**
|
|
526
|
+
* True when this enemy runs for the ring beacons instead of fighting. Letting one escape loses a challenge whose objective sets no_enemy_escape.
|
|
527
|
+
*/
|
|
528
|
+
flees: boolean;
|
|
529
|
+
/**
|
|
530
|
+
* Display name of the enemy. Copies of a multi-ship line are numbered (Ring Cleaver 1, Ring Cleaver 2).
|
|
531
|
+
*/
|
|
532
|
+
name: string;
|
|
533
|
+
/**
|
|
534
|
+
* Combat ID of the enemy: the player_id it carries in battle payloads and the id to pass to the battle command as a target.
|
|
535
|
+
*/
|
|
536
|
+
npc_id: string;
|
|
537
|
+
/**
|
|
538
|
+
* Ship class ID of the enemy hull.
|
|
539
|
+
*/
|
|
540
|
+
ship_class: string;
|
|
541
|
+
};
|
|
456
542
|
export type ArenaParticipantInfo = {
|
|
457
543
|
/**
|
|
458
544
|
* Player ID.
|
|
@@ -636,6 +722,10 @@ export type ArenaStatusResponse = {
|
|
|
636
722
|
* A challenge waiting for your answer. Omitted when none is pending.
|
|
637
723
|
*/
|
|
638
724
|
incoming?: ArenaChallengeInfo;
|
|
725
|
+
/**
|
|
726
|
+
* Live objective state of the NPC challenge you are fighting. Omitted when you are not in a challenge match — a player duel has no objective.
|
|
727
|
+
*/
|
|
728
|
+
match?: ArenaMatchInfo;
|
|
639
729
|
/**
|
|
640
730
|
* A challenge you issued that is still unanswered. Omitted when none is pending.
|
|
641
731
|
*/
|
|
@@ -651,6 +741,24 @@ export type ArenaStatusResponse = {
|
|
|
651
741
|
[key: string]: number;
|
|
652
742
|
};
|
|
653
743
|
};
|
|
744
|
+
export type ArenaWaveInfo = {
|
|
745
|
+
/**
|
|
746
|
+
* Ticks into the match before the wave can arrive. Omitted or 0 = no time trigger.
|
|
747
|
+
*/
|
|
748
|
+
after_ticks?: number;
|
|
749
|
+
/**
|
|
750
|
+
* The enemy ships the wave brings, one entry per line of the definition.
|
|
751
|
+
*/
|
|
752
|
+
enemies: Array<ArenaEnemyInfo>;
|
|
753
|
+
/**
|
|
754
|
+
* Display name of the wave, announced in the arena_objective push frame when it arrives.
|
|
755
|
+
*/
|
|
756
|
+
name: string;
|
|
757
|
+
/**
|
|
758
|
+
* Enemies that must be left standing before the wave can arrive. Omitted = no count trigger; 0 = only once you have cleared the ring.
|
|
759
|
+
*/
|
|
760
|
+
when_enemies_remaining?: number;
|
|
761
|
+
};
|
|
654
762
|
export type ArenaXpLedger = {
|
|
655
763
|
by_skill: {
|
|
656
764
|
[key: string]: number;
|
|
@@ -881,7 +989,7 @@ export type BattleCombatState = {
|
|
|
881
989
|
*/
|
|
882
990
|
flee_counter: number;
|
|
883
991
|
/**
|
|
884
|
-
* Flee ticks needed to escape under current conditions
|
|
992
|
+
* Flee ticks needed to escape under current conditions. 3 ticks is the baseline, and the combat-speed gap to the fastest enemy ship moves it either way: being slower (or webbed) raises it, being faster lowers it, with a floor of 1. 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.
|
|
885
993
|
*/
|
|
886
994
|
flee_required?: number;
|
|
887
995
|
/**
|
|
@@ -904,6 +1012,10 @@ export type BattleCombatState = {
|
|
|
904
1012
|
* 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.
|
|
905
1013
|
*/
|
|
906
1014
|
interceptor_id?: string;
|
|
1015
|
+
/**
|
|
1016
|
+
* Whether your own boarding latch is gaining ground, and what is stopping it when it is not. accruing: you hold point-blank contact with the target's shields suppressed, so latch progress accrues this tick. shields_holding: the target's shields have regenerated back above the suppression line, so the latch reverts instead of advancing — keep its shields down to reopen the gate. out_of_range: you are not in point-blank contact, so the latch reverts — close the gap first, because suppressing shields does nothing at range. Present only while you are latching onto a target; omitted once marines are aboard, and omitted for the ship being boarded.
|
|
1017
|
+
*/
|
|
1018
|
+
latch_status?: 'accruing' | 'shields_holding' | 'out_of_range';
|
|
907
1019
|
/**
|
|
908
1020
|
* 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.
|
|
909
1021
|
*/
|
|
@@ -1014,6 +1126,9 @@ export type BattleParticipant = {
|
|
|
1014
1126
|
*/
|
|
1015
1127
|
shield_pct?: number;
|
|
1016
1128
|
ship_class?: string;
|
|
1129
|
+
/**
|
|
1130
|
+
* Display name of whatever this combatant is flying: a ship reports its custom name when one is set and otherwise its class display name, a drone reports its drone type, and a creature reports its species role. Omitted for stations, which have no hull, and when the combatant ship cannot be resolved.
|
|
1131
|
+
*/
|
|
1017
1132
|
ship_name?: string;
|
|
1018
1133
|
side_id: number;
|
|
1019
1134
|
/**
|
|
@@ -1047,6 +1162,9 @@ export type BattleParticipantInfo = {
|
|
|
1047
1162
|
player_id: string;
|
|
1048
1163
|
shield_pct?: number;
|
|
1049
1164
|
ship_class?: string;
|
|
1165
|
+
/**
|
|
1166
|
+
* Display name of the ship this combatant is flying: its custom name when one is set, otherwise the ship class display name. Omitted for combatants that are not flying a resolvable ship, such as stations, drones, and creatures.
|
|
1167
|
+
*/
|
|
1050
1168
|
ship_name?: string;
|
|
1051
1169
|
side_id: number;
|
|
1052
1170
|
stance?: string;
|
|
@@ -1214,7 +1332,7 @@ export type BoardingStateLogEntry = {
|
|
|
1214
1332
|
*/
|
|
1215
1333
|
destroyed?: boolean;
|
|
1216
1334
|
/**
|
|
1217
|
-
* 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.
|
|
1335
|
+
* Observable boarding transition. Terminal values include capture_ready; plundered; withdrawn; closing_stalled; 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. closing_stalled means a latch with zero progress was withdrawn after the battle sat idle for the whole stalemate window.
|
|
1218
1336
|
*/
|
|
1219
1337
|
event: string;
|
|
1220
1338
|
/**
|
|
@@ -1491,6 +1609,21 @@ export type BulkModifyOrdersResponse = {
|
|
|
1491
1609
|
results: Array<BulkModifyOrderResult>;
|
|
1492
1610
|
summary: BulkSummary;
|
|
1493
1611
|
};
|
|
1612
|
+
export type BulkReloadResponse = {
|
|
1613
|
+
action: 'reload';
|
|
1614
|
+
message?: string;
|
|
1615
|
+
mode: 'bulk';
|
|
1616
|
+
results: Array<BulkReloadResult>;
|
|
1617
|
+
summary: BulkSummary;
|
|
1618
|
+
};
|
|
1619
|
+
export type BulkReloadResult = {
|
|
1620
|
+
error?: string;
|
|
1621
|
+
error_code?: string;
|
|
1622
|
+
index: number;
|
|
1623
|
+
result?: ReloadResponse;
|
|
1624
|
+
success: boolean;
|
|
1625
|
+
weapon_id: string;
|
|
1626
|
+
};
|
|
1494
1627
|
export type BulkSellOrderResult = {
|
|
1495
1628
|
consolidated?: boolean;
|
|
1496
1629
|
error?: string;
|
|
@@ -1704,6 +1837,26 @@ export type CaptureLogEntry = {
|
|
|
1704
1837
|
captor_username: string;
|
|
1705
1838
|
former_owner_id: string;
|
|
1706
1839
|
former_owner_username: string;
|
|
1840
|
+
/**
|
|
1841
|
+
* Prize created for the captured hull. Omitted on historical rows recorded before prize location was carried and on arena captures, which create no prize.
|
|
1842
|
+
*/
|
|
1843
|
+
prize_id?: string;
|
|
1844
|
+
/**
|
|
1845
|
+
* POI where the prize sits (the battle origin, which can differ from the captor's POI). Omitted when there is no prize, the POI is hidden, or the battle began in transit.
|
|
1846
|
+
*/
|
|
1847
|
+
prize_poi_id?: string;
|
|
1848
|
+
/**
|
|
1849
|
+
* Display name of the prize POI. Omitted when unknown or hidden.
|
|
1850
|
+
*/
|
|
1851
|
+
prize_poi_name?: string;
|
|
1852
|
+
/**
|
|
1853
|
+
* System where the prize sits. Omitted when there is no prize.
|
|
1854
|
+
*/
|
|
1855
|
+
prize_system_id?: string;
|
|
1856
|
+
/**
|
|
1857
|
+
* Display name of the prize system. Omitted when unknown.
|
|
1858
|
+
*/
|
|
1859
|
+
prize_system_name?: string;
|
|
1707
1860
|
ship_class: string;
|
|
1708
1861
|
ship_id: string;
|
|
1709
1862
|
};
|
|
@@ -1787,11 +1940,70 @@ export type CatalogDump = {
|
|
|
1787
1940
|
* Regular items and modules merged into one list, sorted by ID.
|
|
1788
1941
|
*/
|
|
1789
1942
|
items: Array<Item | Module>;
|
|
1790
|
-
|
|
1943
|
+
mining: MiningConstants;
|
|
1944
|
+
recipes: Array<CatalogRecipe>;
|
|
1791
1945
|
ships: Array<ShipClass>;
|
|
1792
1946
|
skills: Array<SkillDefinition>;
|
|
1793
1947
|
version: string;
|
|
1794
1948
|
};
|
|
1949
|
+
export type CatalogRecipe = {
|
|
1950
|
+
/**
|
|
1951
|
+
* Grouping label used by the catalog type=recipes category filter. Two values are load-bearing rather than cosmetic: 'Facility Only' and 'Ship Passive' each make the recipe impossible to hand-craft. Prefer hand_craftable, which folds both of those strings together, over comparing this field yourself.
|
|
1952
|
+
*/
|
|
1953
|
+
category: string;
|
|
1954
|
+
/**
|
|
1955
|
+
* Base ticks for one production run before venue and skill modifiers. Fractional values are allowed. At the Station Workshop this is divided by a Crafting/Refining skill factor running from 1.0 at level 0 to 5.0 at level 100; a facility applies its own throughput instead and ignores skill.
|
|
1956
|
+
*/
|
|
1957
|
+
crafting_time: number;
|
|
1958
|
+
/**
|
|
1959
|
+
* Prose summary of what the recipe does. Guidance for the reader only — no mechanic reads it, and it may be empty.
|
|
1960
|
+
*/
|
|
1961
|
+
description: string;
|
|
1962
|
+
/**
|
|
1963
|
+
* True when the recipe runs only inside a production facility and can never be hand-crafted at the Station Workshop. It is one of the two inputs to hand_craftable; category is the other. Do not test it alone — a 'Facility Only' or 'Ship Passive' category recipe is equally un-hand-craftable with this field absent.
|
|
1964
|
+
*/
|
|
1965
|
+
facility_only?: boolean;
|
|
1966
|
+
/**
|
|
1967
|
+
* Units of fuel added straight to the processing ship's tank (not to cargo) per run, when this recipe runs as a Ship Passive recipe aboard a fuel-synthesis module. Absent or zero on every recipe that delivers cargo instead.
|
|
1968
|
+
*/
|
|
1969
|
+
fuel_output?: number;
|
|
1970
|
+
/**
|
|
1971
|
+
* Whether a docked pilot can run this recipe by hand at their Station Workshop, with no facility of any kind. Derived exactly as: facility_only is false AND category is not 'Facility Only' AND category is not 'Ship Passive'. Always present. False means the recipe needs a venue — a 'Ship Passive' recipe runs itself aboard a ship built for it and can never be queued at all, while any other false value must be queued at one of produced_by_facility_ids. True is a venue answer only: inputs, credits and workshop queue space are still checked when you actually craft.
|
|
1972
|
+
*/
|
|
1973
|
+
hand_craftable: boolean;
|
|
1974
|
+
/**
|
|
1975
|
+
* True when the recipe is withheld from the catalog and cannot be crafted. Catalog surfaces omit hidden recipes entirely, so this is absent (false) on every recipe you can actually see.
|
|
1976
|
+
*/
|
|
1977
|
+
hidden?: boolean;
|
|
1978
|
+
/**
|
|
1979
|
+
* Stable recipe identifier. Pass it as recipe_id to craft or to facility action=job_add, and it is what catalog type=recipes id={id} looks up.
|
|
1980
|
+
*/
|
|
1981
|
+
id: string;
|
|
1982
|
+
/**
|
|
1983
|
+
* Materials consumed per production run. Empty on a package operation, whose real manifest is chosen at craft time, and on a labour-only recipe that consumes nothing at all.
|
|
1984
|
+
*/
|
|
1985
|
+
inputs: Array<RecipeInput>;
|
|
1986
|
+
/**
|
|
1987
|
+
* Human-readable recipe name, shown in catalog listings and craft messages. Display only; never pass it as recipe_id.
|
|
1988
|
+
*/
|
|
1989
|
+
name: string;
|
|
1990
|
+
/**
|
|
1991
|
+
* True when the process is irreversible and a recycling facility cannot run it backwards. Absent (false) means a recycler can reverse it to recover the inputs.
|
|
1992
|
+
*/
|
|
1993
|
+
no_recycle?: boolean;
|
|
1994
|
+
/**
|
|
1995
|
+
* Items produced per production run. The first entry's quantity is the run size: a craft count is rounded up to whole runs against it, so asking for 3 of a recipe that yields 2 queues 2 runs and produces 4.
|
|
1996
|
+
*/
|
|
1997
|
+
outputs: Array<RecipeOutput>;
|
|
1998
|
+
/**
|
|
1999
|
+
* Set to pack or unpack on the two dynamic package recipes, whose inputs and outputs are the player-selected manifest rather than the static lists here. Absent on every ordinary recipe.
|
|
2000
|
+
*/
|
|
2001
|
+
package_operation?: string;
|
|
2002
|
+
/**
|
|
2003
|
+
* Ids of the facility definitions that can run this recipe forward, each matching an entry in this dump's facilities list. Sorted by facility level then name. Always present, never omitted: an empty list means no facility definition runs it, which for a hand_craftable recipe is normal (the Station Workshop is then the only venue) and for a recipe with hand_craftable false means it has no player-reachable venue at all. Owning or renting one of these facilities is what craft auto-routes to.
|
|
2004
|
+
*/
|
|
2005
|
+
produced_by_facility_ids: Array<string>;
|
|
2006
|
+
};
|
|
1795
2007
|
export type CatalogResponse = {
|
|
1796
2008
|
analysis?: RecipeAnalysis;
|
|
1797
2009
|
estimated_material_cost?: number;
|
|
@@ -1874,6 +2086,10 @@ export type ChatHistoryMessage = {
|
|
|
1874
2086
|
system_id?: string;
|
|
1875
2087
|
target_id?: string;
|
|
1876
2088
|
target_name?: string;
|
|
2089
|
+
/**
|
|
2090
|
+
* Structured weekly tax statement when this message is a tax assessment. Omitted for other messages and older notices.
|
|
2091
|
+
*/
|
|
2092
|
+
tax_statement?: TaxStatement;
|
|
1877
2093
|
timestamp_utc: string;
|
|
1878
2094
|
};
|
|
1879
2095
|
export type ChatResponse = {
|
|
@@ -2596,6 +2812,9 @@ export type DismantleOutpostResponse = {
|
|
|
2596
2812
|
name: string;
|
|
2597
2813
|
};
|
|
2598
2814
|
export type DistressSignalResponse = {
|
|
2815
|
+
/**
|
|
2816
|
+
* Always "distress_signal". Echoes the command that produced this response.
|
|
2817
|
+
*/
|
|
2599
2818
|
action: string;
|
|
2600
2819
|
/**
|
|
2601
2820
|
* True when the engine docked you automatically before running this command, because the command requires being docked. Omitted when no automatic dock happened.
|
|
@@ -2605,13 +2824,41 @@ export type DistressSignalResponse = {
|
|
|
2605
2824
|
* True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
|
|
2606
2825
|
*/
|
|
2607
2826
|
auto_undocked?: boolean;
|
|
2827
|
+
/**
|
|
2828
|
+
* The kind of emergency broadcast: "fuel" (stranded without fuel), "repair" (hull critically damaged) or "combat" (under attack). Echoes the requested distress_type, or "fuel" when the request omitted it.
|
|
2829
|
+
*/
|
|
2608
2830
|
distress_type: string;
|
|
2831
|
+
/**
|
|
2832
|
+
* Seconds until the posted rescue mission expires, measured from when the call was sent. 10800 (3 hours) for a player call. An unclaimed mission is removed at expiry, and is also removed early if you travel away under your own power.
|
|
2833
|
+
*/
|
|
2609
2834
|
expires_seconds: number;
|
|
2835
|
+
/**
|
|
2836
|
+
* The broadcast text sent to the emergency chat channel, for example "MAYDAY: Phoenix is stranded at Sol Asteroid Belt in Sol with 0/120 fuel! Any pilots nearby, please help!". Wording depends on distress_type.
|
|
2837
|
+
*/
|
|
2610
2838
|
message: string;
|
|
2611
|
-
|
|
2839
|
+
/**
|
|
2840
|
+
* ID of the claimable rescue mission this call posted, for example "a3f9c21e8b04". Nobody is assigned it: any pilot who heard the broadcast can take it by calling accept_mission with this ID, docked or not, and the first claim wins. Empty when responders_reached is 0, because no mission is posted when nobody is in range to hear it.
|
|
2841
|
+
*/
|
|
2842
|
+
mission_id: string;
|
|
2843
|
+
/**
|
|
2844
|
+
* ID of the point of interest the call was sent from, for example "sol_asteroid_belt". Responders must reach this POI, not merely the system.
|
|
2845
|
+
*/
|
|
2612
2846
|
poi: string;
|
|
2847
|
+
/**
|
|
2848
|
+
* Display name of the POI in "poi", for example "Sol Asteroid Belt". Falls back to the POI ID when the POI is unknown to the server.
|
|
2849
|
+
*/
|
|
2613
2850
|
poi_name: string;
|
|
2851
|
+
/**
|
|
2852
|
+
* Number of online pilots within 5 jumps who received the broadcast. This is how many heard you, not how many are coming: the mission is an offer and nobody is assigned to it. 0 means nobody was in range, and then mission_id is empty because no mission was posted.
|
|
2853
|
+
*/
|
|
2854
|
+
responders_reached: number;
|
|
2855
|
+
/**
|
|
2856
|
+
* ID of the system the call was sent from, for example "sol". This is where you were when the call was queued, which is the wreck site rather than your respawn hub if you died in the same tick.
|
|
2857
|
+
*/
|
|
2614
2858
|
system: string;
|
|
2859
|
+
/**
|
|
2860
|
+
* Display name of the system in "system", for example "Sol". Falls back to the system ID when the system is unknown to the server.
|
|
2861
|
+
*/
|
|
2615
2862
|
system_name: string;
|
|
2616
2863
|
};
|
|
2617
2864
|
export type DockResponse = {
|
|
@@ -2735,6 +2982,9 @@ export type EmpireNpcInfo = {
|
|
|
2735
2982
|
npc_id: string;
|
|
2736
2983
|
role: string;
|
|
2737
2984
|
ship_class?: string;
|
|
2985
|
+
/**
|
|
2986
|
+
* Display name of the ship this NPC is flying: its custom name when one is set, otherwise the ship class display name (an unnamed enforcer reads as Enforcer). Presence of this field does not mean the hull is named. Omitted only when the NPC has no resolvable ship.
|
|
2987
|
+
*/
|
|
2738
2988
|
ship_name?: string;
|
|
2739
2989
|
};
|
|
2740
2990
|
export type EmpirePolicySnapshot = {
|
|
@@ -2812,6 +3062,9 @@ export type EnrichedWreck = {
|
|
|
2812
3062
|
poi_id: string;
|
|
2813
3063
|
salvage_value: number;
|
|
2814
3064
|
ship_class: string;
|
|
3065
|
+
/**
|
|
3066
|
+
* Custom name the pilot gave this hull, and only that. Unlike ship_name everywhere else in the API it does not fall back to the ship class display name, because the value is a persisted column written when the wreck was created. Omitted when the hull was never named and on wrecks that were never a named ship (jettison containers, creature carcasses, ambient derelicts). Read ship_class for the hull type.
|
|
3067
|
+
*/
|
|
2815
3068
|
ship_name?: string;
|
|
2816
3069
|
system_id: string;
|
|
2817
3070
|
towed_by_player_id?: string;
|
|
@@ -3126,24 +3379,22 @@ export type FacilityFactionListResponse = {
|
|
|
3126
3379
|
base_id: string;
|
|
3127
3380
|
faction_facilities: Array<FacilityFactionEntry>;
|
|
3128
3381
|
faction_id: string;
|
|
3382
|
+
/**
|
|
3383
|
+
* Current recurring rent and existing arrears for faction_facilities at this station. Omitted when your faction owns none here; present with zero recurring rent when all of them have paused billing.
|
|
3384
|
+
*/
|
|
3385
|
+
faction_rent?: FacilityRentSummary;
|
|
3129
3386
|
faction_storage?: FacilityFactionStorage;
|
|
3130
3387
|
hint: string;
|
|
3131
3388
|
};
|
|
3132
3389
|
export type FacilityFactionOwnedResponse = {
|
|
3133
3390
|
action: 'faction_owned';
|
|
3134
|
-
/**
|
|
3135
|
-
* Credits owed across all facilities: sum rent_per_cycle multiplied by missed_rent_cycles including paused facilities. Pausing billing does not erase existing arrears. Omitted means zero.
|
|
3136
|
-
*/
|
|
3137
|
-
arrears_owed?: number;
|
|
3138
3391
|
facilities: Array<FactionOwnedFacilityEntry>;
|
|
3139
3392
|
faction_id: string;
|
|
3140
|
-
grace_cycles?: number;
|
|
3141
|
-
hint?: string;
|
|
3142
|
-
note?: string;
|
|
3143
3393
|
/**
|
|
3144
|
-
* Current
|
|
3394
|
+
* Current recurring rent and existing arrears for every faction facility across all stations.
|
|
3145
3395
|
*/
|
|
3146
|
-
|
|
3396
|
+
faction_rent: FacilityRentSummary;
|
|
3397
|
+
hint?: string;
|
|
3147
3398
|
};
|
|
3148
3399
|
export type FacilityFactionStorage = {
|
|
3149
3400
|
credits: number;
|
|
@@ -3313,6 +3564,9 @@ export type FacilityRentSummary = {
|
|
|
3313
3564
|
* Number of owned facilities in this summary including facilities whose billing is paused.
|
|
3314
3565
|
*/
|
|
3315
3566
|
facilities: number;
|
|
3567
|
+
/**
|
|
3568
|
+
* Consecutive unpayable rent cycles allowed before the station repossesses the facility. Arrears still accrue during the grace window. Omitted means the station sets no grace window.
|
|
3569
|
+
*/
|
|
3316
3570
|
grace_cycles?: number;
|
|
3317
3571
|
note?: string;
|
|
3318
3572
|
/**
|
|
@@ -3831,6 +4085,10 @@ export type FactionMember = {
|
|
|
3831
4085
|
export type FactionMissionEntry = {
|
|
3832
4086
|
active_instances: number;
|
|
3833
4087
|
difficulty: number;
|
|
4088
|
+
/**
|
|
4089
|
+
* Objectives from the posted mission template in template order using the get_missions shape. Always present; an empty array means no objectives. These are requirements rather than per-player progress. Bounty objectives include the stored target_player_id even if the player cannot be resolved; target_player is the username and is omitted when the player cannot be resolved.
|
|
4090
|
+
*/
|
|
4091
|
+
objectives: Array<ObjectiveInfo>;
|
|
3834
4092
|
posted_by?: string;
|
|
3835
4093
|
reward_credits: number;
|
|
3836
4094
|
template_id: string;
|
|
@@ -4146,6 +4404,9 @@ export type FactionTaxEstimateResponse = {
|
|
|
4146
4404
|
last_assessed_at?: number;
|
|
4147
4405
|
loss_carryforward_applied?: number;
|
|
4148
4406
|
net_taxable_profit: number;
|
|
4407
|
+
/**
|
|
4408
|
+
* Approximate seconds until the next weekly tick boundary: remaining ticks times configured tick duration rounded down to seconds. Paused ticks and later tick-rate changes alter the actual time.
|
|
4409
|
+
*/
|
|
4149
4410
|
next_assessment_approx_seconds: number;
|
|
4150
4411
|
note?: string;
|
|
4151
4412
|
tax_collection_active: boolean;
|
|
@@ -4548,6 +4809,10 @@ export type GetBaseResponse = {
|
|
|
4548
4809
|
power?: StationPowerStatus;
|
|
4549
4810
|
repairs?: StationRepairResponse;
|
|
4550
4811
|
services: Array<string>;
|
|
4812
|
+
/**
|
|
4813
|
+
* Explains an input or internal production-stage blockage at this station's empire-backed trade-authenticator mint. Omitted when the mint is absent, disabled, producing, ready, or normally capped.
|
|
4814
|
+
*/
|
|
4815
|
+
sovereign_mint?: SovereignMintStatus;
|
|
4551
4816
|
};
|
|
4552
4817
|
export type GetBattleLogResponse = {
|
|
4553
4818
|
battle_id: string;
|
|
@@ -4847,6 +5112,13 @@ export type HuntResponse = {
|
|
|
4847
5112
|
message: string;
|
|
4848
5113
|
pending: boolean;
|
|
4849
5114
|
};
|
|
5115
|
+
export type IncomeTaxBracketBreakdown = {
|
|
5116
|
+
income_in_bracket: number;
|
|
5117
|
+
lower_bound: number;
|
|
5118
|
+
rate_bps: number;
|
|
5119
|
+
tax_from_bracket: number;
|
|
5120
|
+
upper_bound?: number;
|
|
5121
|
+
};
|
|
4850
5122
|
export type InherentCapability = {
|
|
4851
5123
|
flag?: string;
|
|
4852
5124
|
type: string;
|
|
@@ -4979,6 +5251,10 @@ export type IntelPoi = {
|
|
|
4979
5251
|
base_id?: string;
|
|
4980
5252
|
base_name?: string;
|
|
4981
5253
|
class?: string;
|
|
5254
|
+
/**
|
|
5255
|
+
* True when this is a hidden deep core POI holding deposits. Access there needs a deep_core_access extractor that a pilot cannot refit below so the too-sparse cutoff never applies and these deposits always work down to zero. It is the one input to the mining lock formula that you cannot derive from a deposit's own numbers. Omitted (false) for every ordinary POI and for a hidden POI with no resources such as a wormhole mouth.
|
|
5256
|
+
*/
|
|
5257
|
+
deep_core?: boolean;
|
|
4982
5258
|
description?: string;
|
|
4983
5259
|
id: string;
|
|
4984
5260
|
name: string;
|
|
@@ -5005,6 +5281,10 @@ export type Item = {
|
|
|
5005
5281
|
hazardous?: boolean;
|
|
5006
5282
|
hidden?: boolean;
|
|
5007
5283
|
id: string;
|
|
5284
|
+
/**
|
|
5285
|
+
* Family of deposits that a specialized extractor targets. Present only on a mined item that belongs to one — currently the value crystal (energy/fury/trade/phase crystal) which the crystal_bonus module special pays its yield bonus out on. Omitted means no specialized-extractor bonus applies to this item.
|
|
5286
|
+
*/
|
|
5287
|
+
mining_group?: string;
|
|
5008
5288
|
name: string;
|
|
5009
5289
|
quest_item?: boolean;
|
|
5010
5290
|
rarity?: string;
|
|
@@ -5343,12 +5623,12 @@ export type LoungeCheckInResponse = {
|
|
|
5343
5623
|
};
|
|
5344
5624
|
export type McpNotification = {
|
|
5345
5625
|
/**
|
|
5346
|
-
* Frame payload
|
|
5626
|
+
* Frame payload selected by msg_type: see Notification_<msg_type>. The same NotificationPayload union is used by polling and inline delivery; null means no payload. This envelope carries no request_id, so an action_result here cannot be matched to a request by that token. Tell a delayed command completion from an unsolicited event by data.command; Notification_action_result explains how.
|
|
5347
5627
|
*/
|
|
5348
|
-
data:
|
|
5628
|
+
data: NotificationPayload;
|
|
5349
5629
|
id: string;
|
|
5350
5630
|
/**
|
|
5351
|
-
* Specific frame subtype. Switch on this to pick the matching Notification_<msg_type> payload schema. Routing to the coarse type field: chat_message -> chat. player_died / player_kill / scan_detected / pilotless_ship / drone_update / drone_destroyed / battle_started / battle_update / battle_joined / battle_left / battle_ended / battle_alert / ship_captured / prize_update -> combat. trade_offer_received / trade_complete / trade_declined / trade_cancelled -> trade. market_update -> market. crafting_update -> crafting. observation_update -> observation. personnel_update -> system. Frames not named here also route to system - that includes battle_damage / drone_scan / drone_survey / drone_adrift / action_result / action_error / server_restart_warning. A types=combat filter does not carry them.
|
|
5631
|
+
* Specific frame subtype. Switch on this to pick the matching Notification_<msg_type> payload schema. Routing to the coarse type field: chat_message -> chat. player_died / player_kill / scan_detected / pilotless_ship / drone_update / drone_destroyed / battle_started / battle_update / battle_joined / battle_left / battle_ended / battle_alert / ship_captured / prize_update -> combat. trade_offer_received / trade_complete / trade_declined / trade_cancelled -> trade. market_update -> market. crafting_update -> crafting. observation_update -> observation. personnel_update -> system. Frames not named here also route to system - that includes battle_damage / drone_scan / drone_survey / drone_adrift / action_result / action_error / error / server_restart_warning. A types=combat filter does not carry them.
|
|
5352
5632
|
*/
|
|
5353
5633
|
msg_type: string;
|
|
5354
5634
|
timestamp: string;
|
|
@@ -5461,8 +5741,17 @@ export type MineFilteredResponse = {
|
|
|
5461
5741
|
* True when the engine undocked you automatically before running this command, because the command requires being undocked. Omitted when no automatic undock happened.
|
|
5462
5742
|
*/
|
|
5463
5743
|
auto_undocked?: boolean;
|
|
5744
|
+
/**
|
|
5745
|
+
* Always true on this shape. The action consumed its tick and mined nothing, because a fitted extraction filter rejects every deposit this ship can work at this POI. A filter that rejects only some of the deposits re-targets the cycle instead and returns the yield shape, so this shape never means a partial loss.
|
|
5746
|
+
*/
|
|
5464
5747
|
filtered: boolean;
|
|
5748
|
+
/**
|
|
5749
|
+
* Always the literal value filtered. It marks this member of the mine response union as the no-yield shape, so a client can tell it apart from the yield shape without inspecting any other field.
|
|
5750
|
+
*/
|
|
5465
5751
|
kind: 'filtered';
|
|
5752
|
+
/**
|
|
5753
|
+
* Human-readable explanation of the empty cycle. It names the fitted-filter cause and the two ways out: unfit the filter, or move to a field carrying an ore the filter accepts.
|
|
5754
|
+
*/
|
|
5466
5755
|
message: string;
|
|
5467
5756
|
};
|
|
5468
5757
|
export type MineResponse = ({
|
|
@@ -5470,6 +5759,24 @@ export type MineResponse = ({
|
|
|
5470
5759
|
} & MiningYieldPayload) | ({
|
|
5471
5760
|
kind: 'filtered';
|
|
5472
5761
|
} & MineFilteredResponse);
|
|
5762
|
+
export type MiningConstants = {
|
|
5763
|
+
/**
|
|
5764
|
+
* Fraction of capacity below which a deposit counts as depleted and the overkill cutoff can apply. A deposit at or above this fraction of max_remaining is always workable however thin, so naturally tiny veins stay mineable by the gear built for them.
|
|
5765
|
+
*/
|
|
5766
|
+
depletion_floor: number;
|
|
5767
|
+
/**
|
|
5768
|
+
* How many times a deposit's supported power your array may apply before it loses its lock entirely instead of tapering. Only bites on a deposit already below depletion_floor, and only for an array whose power times its precision factor exceeds precision_k.
|
|
5769
|
+
*/
|
|
5770
|
+
overkill_ratio: number;
|
|
5771
|
+
/**
|
|
5772
|
+
* Units of remaining stock required per point of applied beam power for full-rate extraction, before your array's precision factor is applied. A deposit supports remaining divided by this (times your precision factor) worth of power; power above that is capped down to it rather than wasted.
|
|
5773
|
+
*/
|
|
5774
|
+
precision_k: number;
|
|
5775
|
+
/**
|
|
5776
|
+
* Weight multiplier per Mining skill level that biases which deposit a mining cycle selects toward rarer ore. A deposit's selection weight is its richness times (1 + this * your Mining level * its rarity rank) where rarity rank is 0 for common 1 uncommon 2 rare 3 exotic and 4 legendary. At Mining level 0 the term vanishes and selection is weighted by richness alone. Selection only; it changes which deposit a cycle picks at a POI holding several and never changes yield.
|
|
5777
|
+
*/
|
|
5778
|
+
rare_ore_rarity_weight_per_level: number;
|
|
5779
|
+
};
|
|
5473
5780
|
export type MiningYieldPayload = {
|
|
5474
5781
|
auto_docked?: boolean;
|
|
5475
5782
|
auto_undocked?: boolean;
|
|
@@ -5486,6 +5793,18 @@ export type MiningYieldPayload = {
|
|
|
5486
5793
|
[key: string]: number;
|
|
5487
5794
|
};
|
|
5488
5795
|
};
|
|
5796
|
+
export type MissionAutoCompleteRewards = {
|
|
5797
|
+
/**
|
|
5798
|
+
* Nominal mission credit reward. Zero means no credit reward. The wallet cap can reduce the credits actually added; this field is not the resulting balance.
|
|
5799
|
+
*/
|
|
5800
|
+
credits: number;
|
|
5801
|
+
/**
|
|
5802
|
+
* Skill XP actually awarded keyed by skill ID. Always present; an empty object means no XP was awarded. Missing skill keys mean zero XP.
|
|
5803
|
+
*/
|
|
5804
|
+
skill_xp: {
|
|
5805
|
+
[key: string]: number;
|
|
5806
|
+
};
|
|
5807
|
+
};
|
|
5489
5808
|
export type MissionDialogInfo = {
|
|
5490
5809
|
accept?: string;
|
|
5491
5810
|
complete?: string;
|
|
@@ -5629,6 +5948,9 @@ export type Module = {
|
|
|
5629
5948
|
passive_repair?: number;
|
|
5630
5949
|
power_bonus?: number;
|
|
5631
5950
|
power_usage: number;
|
|
5951
|
+
/**
|
|
5952
|
+
* Vein-density multiplier on how dense a deposit this beam needs. Above 1 is coarser and needs denser deposits; below 1 is finer and works thinner ones; omitted or 0 means the standard 1.0. Multiply it into the catalog mining.precision_k when computing a deposit's supported power or your lock threshold. A rig with several extractors uses the power-weighted average across them.
|
|
5953
|
+
*/
|
|
5632
5954
|
precision_factor?: number;
|
|
5633
5955
|
quest_item?: boolean;
|
|
5634
5956
|
reach?: number;
|
|
@@ -5684,28 +6006,58 @@ export type NameShipResponse = {
|
|
|
5684
6006
|
* A player visible at the current POI.
|
|
5685
6007
|
*/
|
|
5686
6008
|
export type NearbyPlayer = {
|
|
6009
|
+
/**
|
|
6010
|
+
* Self-assigned clan tag of up to 4 characters. It is cosmetic and unrelated to faction membership - faction_id and faction_tag carry the real affiliation. Omitted when the player has not set one.
|
|
6011
|
+
*/
|
|
5687
6012
|
clan_tag?: string;
|
|
5688
6013
|
/**
|
|
5689
6014
|
* True when the player is docked at a base. Docked players are listed but cannot be attacked, scanned, or traded with until they undock.
|
|
5690
6015
|
*/
|
|
5691
6016
|
docked?: boolean;
|
|
6017
|
+
/**
|
|
6018
|
+
* Id of the faction the player belongs to. Omitted when the player is unaffiliated.
|
|
6019
|
+
*/
|
|
5692
6020
|
faction_id?: string;
|
|
6021
|
+
/**
|
|
6022
|
+
* Short display tag of that faction. Present whenever faction_id is and the faction record still resolves.
|
|
6023
|
+
*/
|
|
5693
6024
|
faction_tag?: string;
|
|
5694
|
-
|
|
6025
|
+
/**
|
|
6026
|
+
* True while the player is in an active battle. Always emitted: false means not in combat.
|
|
6027
|
+
*/
|
|
6028
|
+
in_combat: boolean;
|
|
5695
6029
|
/**
|
|
5696
6030
|
* True when the player has no active connection and no recent activity. Offline players are still listed when the POI total is small; otherwise summarised in the response's offline_collapsed count.
|
|
5697
6031
|
*/
|
|
5698
6032
|
offline?: boolean;
|
|
5699
|
-
|
|
6033
|
+
/**
|
|
6034
|
+
* Unique id of the player. It is the target id for attack and scan. Always present on a listed player.
|
|
6035
|
+
*/
|
|
6036
|
+
player_id: string;
|
|
6037
|
+
/**
|
|
6038
|
+
* Cosmetic profile colour the player set with set_colors, as a 7-character #RRGGBB hex string (new pilots start at #FFFFFF). Decorative only - it drives no game mechanic. Omitted when the player has cleared their colours.
|
|
6039
|
+
*/
|
|
5700
6040
|
primary_color?: string;
|
|
6041
|
+
/**
|
|
6042
|
+
* Cosmetic secondary profile colour in the same 7-character #RRGGBB form as primary_color (new pilots start at #000000). Decorative only. Omitted when the player has cleared their colours.
|
|
6043
|
+
*/
|
|
5701
6044
|
secondary_color?: string;
|
|
6045
|
+
/**
|
|
6046
|
+
* Class id of the hull the player is currently flying (for example enforcer). Omitted only when the player has no resolvable current ship.
|
|
6047
|
+
*/
|
|
5702
6048
|
ship_class?: string;
|
|
5703
6049
|
/**
|
|
5704
|
-
*
|
|
6050
|
+
* Display name of the ship this player is flying: their custom name when they have set one, otherwise the ship class display name (an unnamed enforcer reads as Enforcer). Presence of this field does not mean the hull is named. Omitted only when the player has no resolvable current ship.
|
|
5705
6051
|
*/
|
|
5706
6052
|
ship_name?: string;
|
|
6053
|
+
/**
|
|
6054
|
+
* Free-text status line the player set with set_status. Omitted when they have not set one.
|
|
6055
|
+
*/
|
|
5707
6056
|
status_message?: string;
|
|
5708
|
-
|
|
6057
|
+
/**
|
|
6058
|
+
* Pilot name the player registered under. Always present on a listed player.
|
|
6059
|
+
*/
|
|
6060
|
+
username: string;
|
|
5709
6061
|
};
|
|
5710
6062
|
export type NoteInfo = {
|
|
5711
6063
|
content_length: number;
|
|
@@ -5721,6 +6073,10 @@ export type NotificationChannelInfo = {
|
|
|
5721
6073
|
message_types: Array<string>;
|
|
5722
6074
|
muted: boolean;
|
|
5723
6075
|
};
|
|
6076
|
+
/**
|
|
6077
|
+
* Frame payload shared by polling and inline notifications. Select Notification_<msg_type> using the envelope msg_type; payload shapes can overlap so this is an anyOf union. Null means the frame supplied no payload.
|
|
6078
|
+
*/
|
|
6079
|
+
export type NotificationPayload = NotificationAchievementUnlocked | NotificationActionError | NotificationActionResult | NotificationArenaChallenge | NotificationArenaObjective | NotificationBaseDestroyed | NotificationBaseRaidUpdate | NotificationBattleAlert | NotificationBattleDamage | NotificationBattleEnded | NotificationBattleJoined | NotificationBattleLeft | NotificationBattleStarted | NotificationBattleUpdate | NotificationChatMessage | NotificationCloak | NotificationCompleteMission | NotificationCraftingUpdate | NotificationDroneAdrift | NotificationDroneDestroyed | NotificationDroneScan | NotificationDroneSurvey | NotificationDroneUpdate | NotificationError | NotificationFacilityReclaimed | NotificationFacilityRentWarning | NotificationFactionAllianceBroken | NotificationFactionAllianceFormed | NotificationFactionAllianceProposal | NotificationFactionPeaceAccepted | NotificationFactionPeaceProposal | NotificationFactionWarDeclared | NotificationFleet | NotificationMarketUpdate | NotificationMiningYield | NotificationObservationUpdate | NotificationOk | NotificationPersonnelUpdate | NotificationPilotlessShip | NotificationPirateDestroyed | NotificationPirateRadio | NotificationPlayerDied | NotificationPlayerKill | NotificationPrizeUpdate | NotificationRanchPoached | NotificationReconnected | NotificationRefueledBy | NotificationRepairedBy | NotificationScanDetected | NotificationServerRestartWarning | NotificationShipCaptured | NotificationShipCommissionComplete | NotificationSkillLevelUp | NotificationStationRepaired | NotificationTradeCancelled | NotificationTradeComplete | NotificationTradeDeclined | NotificationTradeOfferReceived | null;
|
|
5724
6080
|
export type NotificationSettingsResponse = {
|
|
5725
6081
|
action: string;
|
|
5726
6082
|
channels: Array<NotificationChannelInfo>;
|
|
@@ -5775,7 +6131,7 @@ export type NotificationActionError = {
|
|
|
5775
6131
|
tick: number;
|
|
5776
6132
|
};
|
|
5777
6133
|
/**
|
|
5778
|
-
*
|
|
6134
|
+
* A state update from the server. Two producers send it. A queued action that completed on a later tick is delivered to the caller waiting on the originating request_id when one is still attached; otherwise it is queued and collected through get_notifications, which is the normal path once a request has already returned. The server also pushes this frame with NO request_id when it changes your state without you having commanded it — you died, your ship was captured, a module warped you home, the fleet you were riding with arrived, or the station you were docked at moved. Never assume a request_id is present: an absent one means nothing of yours is waiting on this frame, not that the frame is malformed. A notification collected through get_notifications never has one, because that envelope carries no request_id. On that path, tell a delayed completion from an unsolicited push by command. A registered command name (mine, dock, buy) is a completion. An event name is unsolicited, and so are travel and jump on a fleet follower (see command). A death or a capture arrives as two notifications. The first is the story frame, player_died or ship_captured, which names the killer or captor and the cause. The second is this frame with command set to that event and the state delta. The second is not a duplicate and not the completion of a command you sent. Apply the delta. Read the story frame for the cause. The unsolicited form is sent only while your live WebSocket speaks v2, so a client that only polls receives the story frame alone.
|
|
5779
6135
|
*/
|
|
5780
6136
|
export type NotificationActionResult = {
|
|
5781
6137
|
/**
|
|
@@ -5787,11 +6143,11 @@ export type NotificationActionResult = {
|
|
|
5787
6143
|
*/
|
|
5788
6144
|
auto_undocked?: boolean;
|
|
5789
6145
|
/**
|
|
5790
|
-
* Name of the command that ran.
|
|
6146
|
+
* Name of the command that ran. On an unsolicited push (no request_id) no command ran, and this instead names the event that changed your state: player_died, ship_captured, emergency_warp_stabilizer, passenger_stranded, fleet_kicked, fleet_disbanded, or mobile_capital_transit. Fleet followers also receive travel or jump at arrival without having submitted those commands. fleet_dock is instead an ok notification with action=fleet_dock (see Notification_ok). Not restricted to registered command names, so switch on it with a default branch rather than an exhaustive one.
|
|
5791
6147
|
*/
|
|
5792
6148
|
command: string;
|
|
5793
6149
|
/**
|
|
5794
|
-
* Payload of the completed command. On v1 this is the command's own response object — see that command's response schema. On v2 it is
|
|
6150
|
+
* Payload of the completed command. On v1 this is the command's own response object — see that command's response schema. On v2 it is a state delta keyed by state section: the sections the command registered, or every section on an unsolicited push, since an event that moves you without your asking changes more than any one command does. A section that is absent is unchanged. Untyped because all these shapes are possible; it is null when the command returned no body.
|
|
5795
6151
|
*/
|
|
5796
6152
|
result: unknown;
|
|
5797
6153
|
/**
|
|
@@ -5841,6 +6197,36 @@ export type NotificationArenaChallenge = {
|
|
|
5841
6197
|
*/
|
|
5842
6198
|
poi_id: string;
|
|
5843
6199
|
};
|
|
6200
|
+
export type NotificationArenaObjective = {
|
|
6201
|
+
/**
|
|
6202
|
+
* ID of the arena battle.
|
|
6203
|
+
*/
|
|
6204
|
+
battle_id: string;
|
|
6205
|
+
/**
|
|
6206
|
+
* ID of the NPC challenge being fought, as listed by arena action=challenges.
|
|
6207
|
+
*/
|
|
6208
|
+
challenge_id: string;
|
|
6209
|
+
/**
|
|
6210
|
+
* The enemy ships the wave brought. Present only when event is wave_arrived.
|
|
6211
|
+
*/
|
|
6212
|
+
enemies?: Array<ArenaObjectiveEnemy>;
|
|
6213
|
+
/**
|
|
6214
|
+
* What happened: wave_arrived (reinforcements joined the enemy side), objective_won (the objective handed your side the match), objective_lost (the objective handed the enemy side the match). The match itself ends on the same tick as objective_won or objective_lost, followed by battle_ended.
|
|
6215
|
+
*/
|
|
6216
|
+
event: 'wave_arrived' | 'objective_won' | 'objective_lost';
|
|
6217
|
+
/**
|
|
6218
|
+
* Human-readable summary of the event.
|
|
6219
|
+
*/
|
|
6220
|
+
message: string;
|
|
6221
|
+
/**
|
|
6222
|
+
* Which objective decided the match: survive_ticks (your side lasted the required ticks), time_limit (an enemy was still standing at the deadline), enemy_escaped (an enemy cleared the ring). Present only when event is objective_won or objective_lost.
|
|
6223
|
+
*/
|
|
6224
|
+
objective?: 'survive_ticks' | 'time_limit' | 'enemy_escaped';
|
|
6225
|
+
/**
|
|
6226
|
+
* Name of the wave that arrived. Present only when event is wave_arrived.
|
|
6227
|
+
*/
|
|
6228
|
+
wave_name?: string;
|
|
6229
|
+
};
|
|
5844
6230
|
export type NotificationBaseDestroyed = {
|
|
5845
6231
|
attacker_id: string;
|
|
5846
6232
|
attacker_name: string;
|
|
@@ -5939,6 +6325,10 @@ export type NotificationChatMessage = {
|
|
|
5939
6325
|
*/
|
|
5940
6326
|
channel?: string;
|
|
5941
6327
|
content?: string;
|
|
6328
|
+
/**
|
|
6329
|
+
* Kind of emergency: fuel, repair or combat. Set on the emergency channel only.
|
|
6330
|
+
*/
|
|
6331
|
+
distress_type?: string;
|
|
5942
6332
|
/**
|
|
5943
6333
|
* True when the server originated the message through the admin empire-leadership pipeline or an empire-NPC code path. Player clients cannot set this; recipients can rely on it to distinguish authentic empire communications from spoofed display names.
|
|
5944
6334
|
*/
|
|
@@ -5948,6 +6338,10 @@ export type NotificationChatMessage = {
|
|
|
5948
6338
|
*/
|
|
5949
6339
|
faction_id?: string;
|
|
5950
6340
|
id?: string;
|
|
6341
|
+
/**
|
|
6342
|
+
* ID of the rescue mission this broadcast posted. Set on the emergency channel only. Nobody is assigned the mission: pass this id to accept_mission to claim it, from anywhere and docked or not, and the first claim wins.
|
|
6343
|
+
*/
|
|
6344
|
+
mission_id?: string;
|
|
5951
6345
|
/**
|
|
5952
6346
|
* Set on local channel.
|
|
5953
6347
|
*/
|
|
@@ -5957,6 +6351,10 @@ export type NotificationChatMessage = {
|
|
|
5957
6351
|
*/
|
|
5958
6352
|
sender?: string;
|
|
5959
6353
|
sender_id?: string;
|
|
6354
|
+
/**
|
|
6355
|
+
* Display name of the system the call came from. Set on the emergency channel only.
|
|
6356
|
+
*/
|
|
6357
|
+
system?: string;
|
|
5960
6358
|
/**
|
|
5961
6359
|
* Set on system / local channels.
|
|
5962
6360
|
*/
|
|
@@ -5968,6 +6366,42 @@ export type NotificationChatMessage = {
|
|
|
5968
6366
|
target_name?: string;
|
|
5969
6367
|
timestamp?: string;
|
|
5970
6368
|
};
|
|
6369
|
+
/**
|
|
6370
|
+
* Automatic cloak state change: fuel exhaustion, a missing cloaking device, or emergency cloak expiry disables the cloak; an emergency cloak can enable it after shield failure. Carried as msg_type=cloak without a client request.
|
|
6371
|
+
*/
|
|
6372
|
+
export type NotificationCloak = {
|
|
6373
|
+
auto_docked?: boolean;
|
|
6374
|
+
auto_undocked?: boolean;
|
|
6375
|
+
/**
|
|
6376
|
+
* Current cloak strength; zero when disabled.
|
|
6377
|
+
*/
|
|
6378
|
+
cloak_strength: number;
|
|
6379
|
+
/**
|
|
6380
|
+
* Whether the player is cloaked after this event.
|
|
6381
|
+
*/
|
|
6382
|
+
enabled: boolean;
|
|
6383
|
+
/**
|
|
6384
|
+
* Human-readable explanation of the automatic cloak change.
|
|
6385
|
+
*/
|
|
6386
|
+
message: string;
|
|
6387
|
+
};
|
|
6388
|
+
/**
|
|
6389
|
+
* Distress mission auto-completion pushed as msg_type=complete_mission without a client command. This is not the response shape of a manually submitted complete_mission action.
|
|
6390
|
+
*/
|
|
6391
|
+
export type NotificationCompleteMission = {
|
|
6392
|
+
/**
|
|
6393
|
+
* ID of the completed mission instance.
|
|
6394
|
+
*/
|
|
6395
|
+
mission_id: string;
|
|
6396
|
+
/**
|
|
6397
|
+
* Display title of the completed mission.
|
|
6398
|
+
*/
|
|
6399
|
+
mission_title: string;
|
|
6400
|
+
/**
|
|
6401
|
+
* Nominal credit reward and skill XP actually awarded for completion.
|
|
6402
|
+
*/
|
|
6403
|
+
rewards: MissionAutoCompleteRewards;
|
|
6404
|
+
};
|
|
5971
6405
|
export type NotificationCraftingUpdate = {
|
|
5972
6406
|
jobs: Array<CraftingJobUpdate>;
|
|
5973
6407
|
tick: number;
|
|
@@ -6045,6 +6479,11 @@ export type NotificationDroneUpdate = {
|
|
|
6045
6479
|
target_id: string;
|
|
6046
6480
|
tick: number;
|
|
6047
6481
|
};
|
|
6482
|
+
export type NotificationError = {
|
|
6483
|
+
code: string;
|
|
6484
|
+
message: string;
|
|
6485
|
+
pending_command?: string;
|
|
6486
|
+
};
|
|
6048
6487
|
/**
|
|
6049
6488
|
* Pushed to a facility owner (or all faction members) when the station repossesses facilities for unpaid rent.
|
|
6050
6489
|
*/
|
|
@@ -6132,6 +6571,27 @@ export type NotificationFactionWarDeclared = {
|
|
|
6132
6571
|
message: string;
|
|
6133
6572
|
reason?: string;
|
|
6134
6573
|
};
|
|
6574
|
+
/**
|
|
6575
|
+
* Fleet lifecycle notification, including death, succession, and arena disbanding. action is fleet_leader_promoted, fleet_disbanded, or fleet_member_died. Delivered without an originating request_id to affected fleet members.
|
|
6576
|
+
*/
|
|
6577
|
+
export type NotificationFleet = {
|
|
6578
|
+
/**
|
|
6579
|
+
* Fleet event: fleet_leader_promoted, fleet_disbanded, or fleet_member_died. Tolerate future event names.
|
|
6580
|
+
*/
|
|
6581
|
+
action: string;
|
|
6582
|
+
/**
|
|
6583
|
+
* Human-readable event explanation.
|
|
6584
|
+
*/
|
|
6585
|
+
message: string;
|
|
6586
|
+
/**
|
|
6587
|
+
* Promoted leader username, falling back to player ID if unresolved; only present for fleet_leader_promoted.
|
|
6588
|
+
*/
|
|
6589
|
+
new_leader?: string;
|
|
6590
|
+
/**
|
|
6591
|
+
* Destroyed member username; only present for fleet_member_died.
|
|
6592
|
+
*/
|
|
6593
|
+
player_name?: string;
|
|
6594
|
+
};
|
|
6135
6595
|
export type NotificationMarketUpdate = {
|
|
6136
6596
|
base_id: string;
|
|
6137
6597
|
base_name?: string;
|
|
@@ -6155,7 +6615,15 @@ export type NotificationMiningYield = {
|
|
|
6155
6615
|
};
|
|
6156
6616
|
};
|
|
6157
6617
|
export type NotificationObservationUpdate = {
|
|
6158
|
-
active_scan
|
|
6618
|
+
active_scan: boolean;
|
|
6619
|
+
/**
|
|
6620
|
+
* Arena challenge enemies that joined the match at the watched POI or whose visible state (hull, shield, status, flees) changed this tick. A knockout surfaces here as hull reaching 0 — not as a departure. Omitted when none changed. Expect one on most updates while a match runs, because hull and shield move every tick.
|
|
6621
|
+
*/
|
|
6622
|
+
arena_npcs_changed?: Array<ArenaNpcInfo>;
|
|
6623
|
+
/**
|
|
6624
|
+
* IDs of arena challenge enemies removed from the watched POI. Enemies are removed only when their match ends, so a knocked-out enemy stays in the feed at hull 0 until then — a missing departure does not mean it is still fighting. Omitted when none departed.
|
|
6625
|
+
*/
|
|
6626
|
+
arena_npcs_departed?: Array<string>;
|
|
6159
6627
|
cloaked_lost?: Array<string>;
|
|
6160
6628
|
cloaked_resolved?: Array<ScanContact>;
|
|
6161
6629
|
creatures_changed?: Array<CreatureInfo>;
|
|
@@ -6175,6 +6643,39 @@ export type NotificationObservationUpdate = {
|
|
|
6175
6643
|
tick: number;
|
|
6176
6644
|
unknown_signature: boolean;
|
|
6177
6645
|
};
|
|
6646
|
+
/**
|
|
6647
|
+
* Fleet movement ok notifications identify their event in action. Other ok payloads may omit action. Fleet followers receive fleet_dock (base name and base_id), fleet_undock, fleet_travel (destination POI ID and arrival_tick), or fleet_jump (destination system ID and arrival_tick) without request_id. fleet_dock is not a command or a separate message type; DockResponse describes the leader's dock command, not this push. Other actions and command-specific fields may occur. Inspect action and tolerate unknown actions. Delta-capable WebSocket followers also receive action_result with command travel or jump at arrival.
|
|
6648
|
+
*/
|
|
6649
|
+
export type NotificationOk = {
|
|
6650
|
+
/**
|
|
6651
|
+
* Event or completed command name. For coordinated docking this is fleet_dock.
|
|
6652
|
+
*/
|
|
6653
|
+
action?: string;
|
|
6654
|
+
/**
|
|
6655
|
+
* Scheduled arrival game tick for fleet_travel or fleet_jump; omitted for fleet_dock and fleet_undock.
|
|
6656
|
+
*/
|
|
6657
|
+
arrival_tick?: number;
|
|
6658
|
+
/**
|
|
6659
|
+
* Station display name string for fleet_dock. Other OK responses may carry a base object or null.
|
|
6660
|
+
*/
|
|
6661
|
+
base?: {
|
|
6662
|
+
[key: string]: unknown;
|
|
6663
|
+
} | {
|
|
6664
|
+
[key: string]: unknown;
|
|
6665
|
+
} | null;
|
|
6666
|
+
/**
|
|
6667
|
+
* Station Base ID, always present for fleet_dock; distinct from its POI ID. Omitted for fleet_undock, fleet_travel and fleet_jump.
|
|
6668
|
+
*/
|
|
6669
|
+
base_id?: string;
|
|
6670
|
+
/**
|
|
6671
|
+
* Destination POI ID for fleet_travel or system ID for fleet_jump; omitted for fleet_dock and fleet_undock.
|
|
6672
|
+
*/
|
|
6673
|
+
destination?: string;
|
|
6674
|
+
/**
|
|
6675
|
+
* Human-readable event explanation.
|
|
6676
|
+
*/
|
|
6677
|
+
message?: string;
|
|
6678
|
+
};
|
|
6178
6679
|
export type NotificationPersonnelUpdate = {
|
|
6179
6680
|
/**
|
|
6180
6681
|
* What an ally did to your active ship. treatment healed injured crew or marines. transfer moved personnel between ships.
|
|
@@ -6352,6 +6853,9 @@ export type NotificationPirateRadio = {
|
|
|
6352
6853
|
*/
|
|
6353
6854
|
speaker_id: string;
|
|
6354
6855
|
};
|
|
6856
|
+
/**
|
|
6857
|
+
* Your ship was destroyed. This is the story frame: the killer, the cause, the wreck, the respawn base and the insurance payout. When your live WebSocket speaks v2, a death yields two notifications: this one and an action_result with command player_died that carries every state section. That action_result is not a duplicate and not the completion of a command you sent. Apply its delta. Read this frame for the cause. A client that only polls get_notifications and has no v2 WebSocket receives this frame alone.
|
|
6858
|
+
*/
|
|
6355
6859
|
export type NotificationPlayerDied = {
|
|
6356
6860
|
cause?: string;
|
|
6357
6861
|
clone_cost: number;
|
|
@@ -6425,6 +6929,9 @@ export type NotificationPrizeUpdate = {
|
|
|
6425
6929
|
prize_id: string;
|
|
6426
6930
|
ship_class: string;
|
|
6427
6931
|
ship_id: string;
|
|
6932
|
+
/**
|
|
6933
|
+
* Display name of the captured ship: the custom name its pilot set when there is one, otherwise the ship class display name (an unnamed enforcer reads as Enforcer). Presence of this field does not mean the hull is named. Omitted only when the captured hull no longer resolves in server state.
|
|
6934
|
+
*/
|
|
6428
6935
|
ship_name?: string;
|
|
6429
6936
|
/**
|
|
6430
6937
|
* Recovery state of the prize. delivered / destroyed / expired / recaptured are terminal.
|
|
@@ -6455,6 +6962,20 @@ export type NotificationReconnected = {
|
|
|
6455
6962
|
ticks_remaining: number;
|
|
6456
6963
|
was_pilotless: boolean;
|
|
6457
6964
|
};
|
|
6965
|
+
export type NotificationRefueledBy = {
|
|
6966
|
+
fuel: number;
|
|
6967
|
+
fuel_max: number;
|
|
6968
|
+
fuel_now: number;
|
|
6969
|
+
source_player_id: string;
|
|
6970
|
+
source_username: string;
|
|
6971
|
+
};
|
|
6972
|
+
export type NotificationRepairedBy = {
|
|
6973
|
+
hull: number;
|
|
6974
|
+
max_hull: number;
|
|
6975
|
+
repaired: number;
|
|
6976
|
+
source_player_id: string;
|
|
6977
|
+
source_username: string;
|
|
6978
|
+
};
|
|
6458
6979
|
export type NotificationScanDetected = {
|
|
6459
6980
|
message: string;
|
|
6460
6981
|
revealed_info: Array<string>;
|
|
@@ -6467,6 +6988,9 @@ export type NotificationServerRestartWarning = {
|
|
|
6467
6988
|
seconds_until_restart: number;
|
|
6468
6989
|
target_version?: string;
|
|
6469
6990
|
};
|
|
6991
|
+
/**
|
|
6992
|
+
* A boarding capture succeeded. This is the story frame: the captor, the former owner and the ship. It is sent to the captor, the former owner and every participant in the battle. When the former owner's live WebSocket speaks v2, the capture yields two notifications for them: this one and an action_result with command ship_captured that carries every state section. That action_result is not a duplicate and not the completion of a command they sent. Apply its delta. Read this frame for the cause. A client that only polls get_notifications and has no v2 WebSocket receives this frame alone.
|
|
6993
|
+
*/
|
|
6470
6994
|
export type NotificationShipCaptured = {
|
|
6471
6995
|
battle_id: string;
|
|
6472
6996
|
boarding_operation_id: string;
|
|
@@ -6478,6 +7002,26 @@ export type NotificationShipCaptured = {
|
|
|
6478
7002
|
captor_username: string;
|
|
6479
7003
|
former_owner_id: string;
|
|
6480
7004
|
former_owner_username: string;
|
|
7005
|
+
/**
|
|
7006
|
+
* Prize created for the captured hull. Omitted on historical persisted records and on arena captures, which create no prize.
|
|
7007
|
+
*/
|
|
7008
|
+
prize_id?: string;
|
|
7009
|
+
/**
|
|
7010
|
+
* POI where the prize sits (the battle origin, which can differ from your POI). Omitted when there is no prize, the POI is hidden, or the battle began in transit.
|
|
7011
|
+
*/
|
|
7012
|
+
prize_poi_id?: string;
|
|
7013
|
+
/**
|
|
7014
|
+
* Display name of the prize POI. Omitted when unknown or hidden.
|
|
7015
|
+
*/
|
|
7016
|
+
prize_poi_name?: string;
|
|
7017
|
+
/**
|
|
7018
|
+
* System where the prize sits. Omitted when there is no prize.
|
|
7019
|
+
*/
|
|
7020
|
+
prize_system_id?: string;
|
|
7021
|
+
/**
|
|
7022
|
+
* Display name of the prize system. Omitted when unknown.
|
|
7023
|
+
*/
|
|
7024
|
+
prize_system_name?: string;
|
|
6481
7025
|
ship_class: string;
|
|
6482
7026
|
ship_id: string;
|
|
6483
7027
|
tick: number;
|
|
@@ -7200,6 +7744,14 @@ export type PlayerStats = {
|
|
|
7200
7744
|
* Unix timestamp of the most recent property-tax assessment
|
|
7201
7745
|
*/
|
|
7202
7746
|
last_property_tax_assessed_at?: number;
|
|
7747
|
+
/**
|
|
7748
|
+
* UTC start of the latest weekly assessment, including an exempt period. Zero time means no tracked weekly boundary; the first assessment remains eligible.
|
|
7749
|
+
*/
|
|
7750
|
+
last_weekly_tax_assessed_at?: string;
|
|
7751
|
+
/**
|
|
7752
|
+
* Latest completed personal weekly statement, also returned as latest_statement by get_tax_estimate. Omitted before the first statement. Later debt payments do not change this historical statement.
|
|
7753
|
+
*/
|
|
7754
|
+
latest_tax_statement?: TaxStatement;
|
|
7203
7755
|
marine_deaths?: number;
|
|
7204
7756
|
marine_injuries?: number;
|
|
7205
7757
|
marine_injuries_healed?: number;
|
|
@@ -7271,6 +7823,10 @@ export type PlayerStats = {
|
|
|
7271
7823
|
* Times a Pathfinder course was plotted into open space
|
|
7272
7824
|
*/
|
|
7273
7825
|
void_drifts?: number;
|
|
7826
|
+
/**
|
|
7827
|
+
* Gameplay or economic activity recorded since the latest weekly boundary. Omitted means false. This flag alone does not determine eligibility: unassessed income or purchases and an untracked first period also prevent inactivity exemption.
|
|
7828
|
+
*/
|
|
7829
|
+
weekly_tax_active?: boolean;
|
|
7274
7830
|
wormholes_traversed?: number;
|
|
7275
7831
|
wreck_items_looted?: number;
|
|
7276
7832
|
wrecks_scrapped?: number;
|
|
@@ -7501,17 +8057,53 @@ export type RecallDroneResponse = {
|
|
|
7501
8057
|
skipped: number;
|
|
7502
8058
|
};
|
|
7503
8059
|
export type Recipe = {
|
|
8060
|
+
/**
|
|
8061
|
+
* Grouping label used by the catalog type=recipes category filter. Two values are load-bearing rather than cosmetic: 'Facility Only' and 'Ship Passive' each make the recipe impossible to hand-craft. Prefer hand_craftable, which folds both of those strings together, over comparing this field yourself.
|
|
8062
|
+
*/
|
|
7504
8063
|
category: string;
|
|
8064
|
+
/**
|
|
8065
|
+
* Base ticks for one production run before venue and skill modifiers. Fractional values are allowed. At the Station Workshop this is divided by a Crafting/Refining skill factor running from 1.0 at level 0 to 5.0 at level 100; a facility applies its own throughput instead and ignores skill.
|
|
8066
|
+
*/
|
|
7505
8067
|
crafting_time: number;
|
|
8068
|
+
/**
|
|
8069
|
+
* Prose summary of what the recipe does. Guidance for the reader only — no mechanic reads it, and it may be empty.
|
|
8070
|
+
*/
|
|
7506
8071
|
description: string;
|
|
8072
|
+
/**
|
|
8073
|
+
* True when the recipe runs only inside a production facility and can never be hand-crafted at the Station Workshop. It is one of the two inputs to hand_craftable; category is the other. Do not test it alone — a 'Facility Only' or 'Ship Passive' category recipe is equally un-hand-craftable with this field absent.
|
|
8074
|
+
*/
|
|
7507
8075
|
facility_only?: boolean;
|
|
8076
|
+
/**
|
|
8077
|
+
* Units of fuel added straight to the processing ship's tank (not to cargo) per run, when this recipe runs as a Ship Passive recipe aboard a fuel-synthesis module. Absent or zero on every recipe that delivers cargo instead.
|
|
8078
|
+
*/
|
|
7508
8079
|
fuel_output?: number;
|
|
8080
|
+
/**
|
|
8081
|
+
* True when the recipe is withheld from the catalog and cannot be crafted. Catalog surfaces omit hidden recipes entirely, so this is absent (false) on every recipe you can actually see.
|
|
8082
|
+
*/
|
|
7509
8083
|
hidden?: boolean;
|
|
8084
|
+
/**
|
|
8085
|
+
* Stable recipe identifier. Pass it as recipe_id to craft or to facility action=job_add, and it is what catalog type=recipes id={id} looks up.
|
|
8086
|
+
*/
|
|
7510
8087
|
id: string;
|
|
8088
|
+
/**
|
|
8089
|
+
* Materials consumed per production run. Empty on a package operation, whose real manifest is chosen at craft time, and on a labour-only recipe that consumes nothing at all.
|
|
8090
|
+
*/
|
|
7511
8091
|
inputs: Array<RecipeInput>;
|
|
8092
|
+
/**
|
|
8093
|
+
* Human-readable recipe name, shown in catalog listings and craft messages. Display only; never pass it as recipe_id.
|
|
8094
|
+
*/
|
|
7512
8095
|
name: string;
|
|
8096
|
+
/**
|
|
8097
|
+
* True when the process is irreversible and a recycling facility cannot run it backwards. Absent (false) means a recycler can reverse it to recover the inputs.
|
|
8098
|
+
*/
|
|
7513
8099
|
no_recycle?: boolean;
|
|
8100
|
+
/**
|
|
8101
|
+
* Items produced per production run. The first entry's quantity is the run size: a craft count is rounded up to whole runs against it, so asking for 3 of a recipe that yields 2 queues 2 runs and produces 4.
|
|
8102
|
+
*/
|
|
7514
8103
|
outputs: Array<RecipeOutput>;
|
|
8104
|
+
/**
|
|
8105
|
+
* Set to pack or unpack on the two dynamic package recipes, whose inputs and outputs are the player-selected manifest rather than the static lists here. Absent on every ordinary recipe.
|
|
8106
|
+
*/
|
|
7515
8107
|
package_operation?: string;
|
|
7516
8108
|
};
|
|
7517
8109
|
export type RecipeAnalysis = {
|
|
@@ -7671,6 +8263,7 @@ export type ReleaseTowResponse = {
|
|
|
7671
8263
|
message: string;
|
|
7672
8264
|
wreck_id: string;
|
|
7673
8265
|
};
|
|
8266
|
+
export type ReloadCommandResponse = ReloadResponse | BulkReloadResponse;
|
|
7674
8267
|
export type ReloadResponse = {
|
|
7675
8268
|
action: string;
|
|
7676
8269
|
ammo_id: string;
|
|
@@ -7702,14 +8295,46 @@ export type RepairResponse = {
|
|
|
7702
8295
|
target_player_name?: string;
|
|
7703
8296
|
};
|
|
7704
8297
|
export type ResourceInfo = {
|
|
8298
|
+
/**
|
|
8299
|
+
* How far this deposit is drawn down, as a percentage of max_remaining. Below 25 percent a deposit is depleted enough for lock_minimum_stock to take effect. Omitted when max_remaining is.
|
|
8300
|
+
*/
|
|
7705
8301
|
depletion_percent?: number;
|
|
8302
|
+
/**
|
|
8303
|
+
* Stock this deposit must hold for your fitted array to keep a lock on it once the deposit falls below a quarter of capacity. Below both thresholds at once the beam disperses the remaining fragments and extraction fails with deposit_too_sparse. Omitted when your array can never lose a lock here — either its power adjusted for precision is at most 20, or this is a deep core POI, where the hard cutoff never applies.
|
|
8304
|
+
*/
|
|
8305
|
+
lock_minimum_stock?: number;
|
|
8306
|
+
/**
|
|
8307
|
+
* Capacity this deposit regenerates back toward, seeded from its starting stock. Omitted for unlimited deposits, which have no capacity and never lock.
|
|
8308
|
+
*/
|
|
7706
8309
|
max_remaining?: number;
|
|
8310
|
+
/**
|
|
8311
|
+
* Display name of the resource. Falls back to the raw item id when the catalog has no entry for it.
|
|
8312
|
+
*/
|
|
7707
8313
|
name: string;
|
|
8314
|
+
/**
|
|
8315
|
+
* Units of stock left. -1 means an unlimited deposit that never depletes and never regenerates; 0 means fully depleted. A finite deposit below capacity regenerates at least 1 unit per minute.
|
|
8316
|
+
*/
|
|
7708
8317
|
remaining: number;
|
|
8318
|
+
/**
|
|
8319
|
+
* Human-readable form of remaining: the string unlimited, the string depleted, or a unit count such as 4000 units.
|
|
8320
|
+
*/
|
|
7709
8321
|
remaining_display: string;
|
|
8322
|
+
/**
|
|
8323
|
+
* Item id of the ore, gas, ice or radioactive material in this deposit — for example iron_ore or fury_crystal. Look it up in the catalog for its rarity and which extractor works it.
|
|
8324
|
+
*/
|
|
7710
8325
|
resource_id: string;
|
|
8326
|
+
/**
|
|
8327
|
+
* Percentage multiplier on extraction yield: yield is applied beam power times richness divided by 100, floored at 1 unit per action. It also weights random deposit selection when a POI holds several, so a richer deposit is picked more often.
|
|
8328
|
+
*/
|
|
7711
8329
|
richness: number;
|
|
8330
|
+
/**
|
|
8331
|
+
* Beam power this deposit accepts at full extraction rate, computed for the extraction hardware you have fitted right now — remaining stock divided by 20 and by your array's precision factor. Applying more than this is not wasted: power above it is capped down to it and extraction continues at the reduced rate. Omitted when the deposit is depleted or unlimited.
|
|
8332
|
+
*/
|
|
7712
8333
|
supported_power?: number;
|
|
8334
|
+
/**
|
|
8335
|
+
* True when your currently fitted array cannot work this deposit at all right now. Fit a lower-power or finer-precision extractor, or mine a richer deposit. Omitted (false) whenever the deposit is workable.
|
|
8336
|
+
*/
|
|
8337
|
+
too_sparse?: boolean;
|
|
7713
8338
|
};
|
|
7714
8339
|
export type ResourceNode = {
|
|
7715
8340
|
max_remaining?: number;
|
|
@@ -7745,6 +8370,9 @@ export type ScanContact = {
|
|
|
7745
8370
|
revealed_info: Array<string>;
|
|
7746
8371
|
shield?: number;
|
|
7747
8372
|
ship_class?: string;
|
|
8373
|
+
/**
|
|
8374
|
+
* Display name of the scanned ship: the custom name its pilot set when there is one, otherwise the ship class display name. Presence of this field does not mean the hull is named. Omitted when the scan did not reach the ship_class reveal tier.
|
|
8375
|
+
*/
|
|
7748
8376
|
ship_name?: string;
|
|
7749
8377
|
target_id: string;
|
|
7750
8378
|
username?: string;
|
|
@@ -7760,6 +8388,9 @@ export type ScanResponse = {
|
|
|
7760
8388
|
revealed_info: Array<string>;
|
|
7761
8389
|
shield?: number;
|
|
7762
8390
|
ship_class?: string;
|
|
8391
|
+
/**
|
|
8392
|
+
* Display name of the scanned ship: the custom name its pilot set when there is one, otherwise the ship class display name. Presence of this field does not mean the hull is named. Omitted when the scan did not reach the ship_class reveal tier.
|
|
8393
|
+
*/
|
|
7763
8394
|
ship_name?: string;
|
|
7764
8395
|
signature_detected?: boolean;
|
|
7765
8396
|
success: boolean;
|
|
@@ -7879,6 +8510,7 @@ export type SellWreckResponse = {
|
|
|
7879
8510
|
*/
|
|
7880
8511
|
auto_undocked?: boolean;
|
|
7881
8512
|
message: string;
|
|
8513
|
+
modules_stored?: Array<SoldModuleItem>;
|
|
7882
8514
|
new_balance: number;
|
|
7883
8515
|
offer: number;
|
|
7884
8516
|
salvage_value?: number;
|
|
@@ -8614,6 +9246,88 @@ export type SoldModuleItem = {
|
|
|
8614
9246
|
module_type: string;
|
|
8615
9247
|
name: string;
|
|
8616
9248
|
};
|
|
9249
|
+
export type SovereignMintInputShortage = {
|
|
9250
|
+
/**
|
|
9251
|
+
* Always present. True exactly when this station manager has a public non-commission buy order for this item with remaining quantity greater than zero. False means no such order is available. Availability is a snapshot and does not guarantee enough order depth to cover quantity_missing.
|
|
9252
|
+
*/
|
|
9253
|
+
buy_order_available: boolean;
|
|
9254
|
+
/**
|
|
9255
|
+
* Stable item ID of the externally procurable root input. At the Grand Exchange this normally identifies minable Trade Crystals rather than the internally produced Trade Cipher intermediate.
|
|
9256
|
+
*/
|
|
9257
|
+
item_id: string;
|
|
9258
|
+
/**
|
|
9259
|
+
* Display name of item_id. Falls back to item_id when the item definition is unavailable.
|
|
9260
|
+
*/
|
|
9261
|
+
name?: string;
|
|
9262
|
+
/**
|
|
9263
|
+
* Units currently present in station-manager storage and available to that recipe run.
|
|
9264
|
+
*/
|
|
9265
|
+
quantity_in_storage: number;
|
|
9266
|
+
/**
|
|
9267
|
+
* Additional units needed, equal to max(quantity_required minus quantity_in_storage, 0). This entry is present only when the result is greater than zero.
|
|
9268
|
+
*/
|
|
9269
|
+
quantity_missing: number;
|
|
9270
|
+
/**
|
|
9271
|
+
* Units required in station-manager storage to queue the next relevant mint-chain recipe run.
|
|
9272
|
+
*/
|
|
9273
|
+
quantity_required: number;
|
|
9274
|
+
};
|
|
9275
|
+
export type SovereignMintInternalBlocker = {
|
|
9276
|
+
/**
|
|
9277
|
+
* Installed station facility instance responsible for this stage. Omitted when the required stage is not installed.
|
|
9278
|
+
*/
|
|
9279
|
+
facility_id?: string;
|
|
9280
|
+
/**
|
|
9281
|
+
* Display name of facility_id.
|
|
9282
|
+
*/
|
|
9283
|
+
facility_name?: string;
|
|
9284
|
+
/**
|
|
9285
|
+
* Stable item ID produced by this required stage.
|
|
9286
|
+
*/
|
|
9287
|
+
item_id: string;
|
|
9288
|
+
/**
|
|
9289
|
+
* Display name of item_id.
|
|
9290
|
+
*/
|
|
9291
|
+
name?: string;
|
|
9292
|
+
/**
|
|
9293
|
+
* Explains that station repair, construction, or restoration must return this production stage to service. For internal intermediates, the output is not a normal player supply request.
|
|
9294
|
+
*/
|
|
9295
|
+
remediation: string;
|
|
9296
|
+
/**
|
|
9297
|
+
* Classification of this blocker.
|
|
9298
|
+
*/
|
|
9299
|
+
stage: 'internal_intermediate' | 'sovereign_mint';
|
|
9300
|
+
/**
|
|
9301
|
+
* Why the required station production stage cannot currently run.
|
|
9302
|
+
*/
|
|
9303
|
+
status: 'damaged' | 'under_construction' | 'unavailable';
|
|
9304
|
+
};
|
|
9305
|
+
export type SovereignMintStatus = {
|
|
9306
|
+
/**
|
|
9307
|
+
* Required station-owned production stages that are missing or cannot currently run, including the final sovereign mint. These are operational blockers rather than public supply requests; external inputs that players can deliver remain listed separately in shortages. Omitted when all required stages are available and operational.
|
|
9308
|
+
*/
|
|
9309
|
+
internal_blockers?: Array<SovereignMintInternalBlocker>;
|
|
9310
|
+
/**
|
|
9311
|
+
* Stable item ID produced by this sovereign mint.
|
|
9312
|
+
*/
|
|
9313
|
+
output_item_id: string;
|
|
9314
|
+
/**
|
|
9315
|
+
* Display name of output_item_id. Falls back to output_item_id when the item definition is unavailable.
|
|
9316
|
+
*/
|
|
9317
|
+
output_name?: string;
|
|
9318
|
+
/**
|
|
9319
|
+
* Supply guidance present whenever shortages is non-empty. Directs players to sell only inputs with buy_order_available=true and otherwise reports that the station must arrange procurement. Check ordinary market listings for current prices and order depth. Internal Trade Ciphers are not normal player procurement.
|
|
9320
|
+
*/
|
|
9321
|
+
remediation?: string;
|
|
9322
|
+
/**
|
|
9323
|
+
* Externally procurable root inputs insufficient to queue the next relevant mint-chain recipe run. Trade Crystals appear first when present. An intermediate made by an installed station feeder is expanded into that feeder's inputs rather than presented as a separate conjunctive bill. Omitted when no root input is short.
|
|
9324
|
+
*/
|
|
9325
|
+
shortages?: Array<SovereignMintInputShortage>;
|
|
9326
|
+
/**
|
|
9327
|
+
* Why authenticator production is offline: blocked_inputs when one or more external root inputs are short, or blocked_internal when a required station-owned production stage — including the final sovereign mint — is missing or cannot run.
|
|
9328
|
+
*/
|
|
9329
|
+
status: 'blocked_inputs' | 'blocked_internal';
|
|
9330
|
+
};
|
|
8617
9331
|
export type StationConfigResponse = {
|
|
8618
9332
|
action: string;
|
|
8619
9333
|
allow_outsider_facilities: boolean;
|
|
@@ -8815,6 +9529,10 @@ export type SubscribeMarketResponse = {
|
|
|
8815
9529
|
export type SubscribeObservationResponse = {
|
|
8816
9530
|
action: string;
|
|
8817
9531
|
active_scan: boolean;
|
|
9532
|
+
/**
|
|
9533
|
+
* Challenge enemies fighting an arena match held at the watched POI, the same set get_nearby returns there. Omitted when no NPC challenge is in progress at this POI, which is the usual case: enemies exist only for the length of one match. While a match runs their hull and shield move every tick, so expect an arena_npcs_changed entry in most observation_update messages until it ends.
|
|
9534
|
+
*/
|
|
9535
|
+
arena_npcs?: Array<ArenaNpcInfo>;
|
|
8818
9536
|
cloaked_contacts?: Array<ScanContact>;
|
|
8819
9537
|
creatures?: Array<CreatureInfo>;
|
|
8820
9538
|
empire_npcs?: Array<EmpireNpcInfo>;
|
|
@@ -8979,10 +9697,25 @@ export type TaxEstimateIncomeRow = {
|
|
|
8979
9697
|
rate_bps: number;
|
|
8980
9698
|
};
|
|
8981
9699
|
export type TaxEstimatePropertyRow = {
|
|
9700
|
+
/**
|
|
9701
|
+
* Owned hull and fitted module value in credits assessed independently by this empire.
|
|
9702
|
+
*/
|
|
8982
9703
|
assessed_value: number;
|
|
9704
|
+
/**
|
|
9705
|
+
* Progressive assessment detail when applicable. Omitted for flat rates and when inactivity_exempt is true.
|
|
9706
|
+
*/
|
|
8983
9707
|
brackets?: Array<TaxEstimateBracketRow>;
|
|
9708
|
+
/**
|
|
9709
|
+
* Citizenship empire assessing this property.
|
|
9710
|
+
*/
|
|
8984
9711
|
empire: string;
|
|
9712
|
+
/**
|
|
9713
|
+
* Projected property tax in credits; zero when inactivity_exempt is true even if the normal rate is positive.
|
|
9714
|
+
*/
|
|
8985
9715
|
owed: number;
|
|
9716
|
+
/**
|
|
9717
|
+
* Normal property rate in basis points or effective rate for a progressive schedule before any inactivity exemption. 100 basis points is one percent.
|
|
9718
|
+
*/
|
|
8986
9719
|
rate_bps: number;
|
|
8987
9720
|
};
|
|
8988
9721
|
export type TaxEstimatePropertyShipRow = {
|
|
@@ -8990,25 +9723,101 @@ export type TaxEstimatePropertyShipRow = {
|
|
|
8990
9723
|
value: number;
|
|
8991
9724
|
};
|
|
8992
9725
|
export type TaxEstimateResponse = {
|
|
9726
|
+
/**
|
|
9727
|
+
* Command name: get_tax_estimate.
|
|
9728
|
+
*/
|
|
8993
9729
|
action: string;
|
|
9730
|
+
/**
|
|
9731
|
+
* Current value in credits per owned ship; an empty list means no assessed ships.
|
|
9732
|
+
*/
|
|
8994
9733
|
assessed_property_by_ship: Array<TaxEstimatePropertyShipRow>;
|
|
9734
|
+
/**
|
|
9735
|
+
* Total current owned hull and fitted module value in credits; retained when exempt.
|
|
9736
|
+
*/
|
|
8995
9737
|
assessed_property_value: number;
|
|
9738
|
+
/**
|
|
9739
|
+
* True when this character currently qualifies to skip weekly income and property tax for inactivity after a fully observed assessment period. Gameplay or taxable income before assessment removes the exemption. Existing debt remains payable.
|
|
9740
|
+
*/
|
|
9741
|
+
inactivity_exempt: boolean;
|
|
9742
|
+
/**
|
|
9743
|
+
* Income tax projected by citizenship empire in assessment order; empty means no empire assessment.
|
|
9744
|
+
*/
|
|
8996
9745
|
income_tax: Array<TaxEstimateIncomeRow>;
|
|
9746
|
+
/**
|
|
9747
|
+
* Sum of income_tax owed amounts in credits for the pending assessment only.
|
|
9748
|
+
*/
|
|
8997
9749
|
income_tax_total: number;
|
|
9750
|
+
/**
|
|
9751
|
+
* Unix timestamp in seconds of the last income assessment; omitted when none is recorded.
|
|
9752
|
+
*/
|
|
8998
9753
|
last_assessed_at?: number;
|
|
9754
|
+
/**
|
|
9755
|
+
* Unix timestamp in seconds of the last property assessment; omitted when none is recorded.
|
|
9756
|
+
*/
|
|
8999
9757
|
last_property_assessed_at?: number;
|
|
9758
|
+
/**
|
|
9759
|
+
* Latest saved weekly statement for this character. Omitted before the first statement. Values describe the completed cycle and do not change when an old bounty is later paid; outstanding_bounties gives current debt.
|
|
9760
|
+
*/
|
|
9761
|
+
latest_statement?: TaxStatement;
|
|
9762
|
+
/**
|
|
9763
|
+
* Credits of market purchases and incoming loss deducted against market sales; cannot exceed market sales.
|
|
9764
|
+
*/
|
|
9000
9765
|
market_cost_of_goods_deducted: number;
|
|
9766
|
+
/**
|
|
9767
|
+
* Unused market deduction brought forward from previous periods in credits; zero means none.
|
|
9768
|
+
*/
|
|
9001
9769
|
market_loss_carryforward?: number;
|
|
9770
|
+
/**
|
|
9771
|
+
* Gross market sales in credits sampled since the previous income assessment.
|
|
9772
|
+
*/
|
|
9002
9773
|
market_sales_to_date: number;
|
|
9774
|
+
/**
|
|
9775
|
+
* Approximate seconds until the next weekly tick boundary: remaining ticks times configured tick duration rounded down to seconds. Paused ticks and later tick-rate changes alter the actual time.
|
|
9776
|
+
*/
|
|
9003
9777
|
next_assessment_approx_seconds: number;
|
|
9778
|
+
/**
|
|
9779
|
+
* Additional assessment explanation; omitted when no explanation applies.
|
|
9780
|
+
*/
|
|
9004
9781
|
note?: string;
|
|
9782
|
+
/**
|
|
9783
|
+
* Current full settlement amounts by empire in credits including missed taxes and other crimes. Empty means no outstanding bounty. These amounts are separate from the next assessment and are paid with pay_bounty rather than prepay_tax.
|
|
9784
|
+
*/
|
|
9785
|
+
outstanding_bounties: Array<PayBountyOutstandingRow>;
|
|
9786
|
+
/**
|
|
9787
|
+
* Instructions for paying existing debt remotely and reserving credits for the next assessment.
|
|
9788
|
+
*/
|
|
9789
|
+
payment_guidance: string;
|
|
9790
|
+
/**
|
|
9791
|
+
* Property tax projected independently per citizenship empire; owed is zero when inactivity_exempt is true.
|
|
9792
|
+
*/
|
|
9005
9793
|
property_tax: Array<TaxEstimatePropertyRow>;
|
|
9794
|
+
/**
|
|
9795
|
+
* Sum of property_tax owed amounts in credits; zero when inactivity_exempt is true.
|
|
9796
|
+
*/
|
|
9006
9797
|
property_tax_total: number;
|
|
9798
|
+
/**
|
|
9799
|
+
* Current purchase tax rates by empire; these are separate from weekly income and property tax.
|
|
9800
|
+
*/
|
|
9007
9801
|
sales_tax_rates: Array<TaxEstimateSalesRow>;
|
|
9802
|
+
/**
|
|
9803
|
+
* True when assessments collect credits. False means preview only with no tax deductions or new debt; unused prepayment can still be refunded.
|
|
9804
|
+
*/
|
|
9008
9805
|
tax_collection_active: boolean;
|
|
9806
|
+
/**
|
|
9807
|
+
* Credits reserved for the next assessment; consumed before the wallet and any surplus refunded. Does not pay existing debt.
|
|
9808
|
+
*/
|
|
9009
9809
|
tax_prepaid: number;
|
|
9810
|
+
/**
|
|
9811
|
+
* Gross taxable earnings by category in credits before market deductions; an empty list means no entries.
|
|
9812
|
+
*/
|
|
9010
9813
|
taxable_income_by_source: Array<TaxableIncomeByCategoryEntry>;
|
|
9814
|
+
/**
|
|
9815
|
+
* Assessable income in credits since the last income assessment: nonmarket net income floored at zero plus taxable_market_income. Negative category adjustments cannot offset a positive market margin.
|
|
9816
|
+
*/
|
|
9011
9817
|
taxable_income_to_date: number;
|
|
9818
|
+
/**
|
|
9819
|
+
* Market sales minus market cost of goods deducted in credits.
|
|
9820
|
+
*/
|
|
9012
9821
|
taxable_market_income: number;
|
|
9013
9822
|
};
|
|
9014
9823
|
export type TaxEstimateSalesRow = {
|
|
@@ -9016,6 +9825,168 @@ export type TaxEstimateSalesRow = {
|
|
|
9016
9825
|
rate_bps: number;
|
|
9017
9826
|
reason: string;
|
|
9018
9827
|
};
|
|
9828
|
+
export type TaxStatement = {
|
|
9829
|
+
/**
|
|
9830
|
+
* UTC time this weekly personal assessment completed.
|
|
9831
|
+
*/
|
|
9832
|
+
assessed_at: string;
|
|
9833
|
+
/**
|
|
9834
|
+
* True when this character was exempt from weekly personal taxes for inactivity during this period.
|
|
9835
|
+
*/
|
|
9836
|
+
inactivity_exempt: boolean;
|
|
9837
|
+
/**
|
|
9838
|
+
* Income assessments in citizenship order; empires with zero net tax are omitted.
|
|
9839
|
+
*/
|
|
9840
|
+
income: Array<TaxStatementIncome>;
|
|
9841
|
+
/**
|
|
9842
|
+
* Gross earnings by income category in credits; missing categories contributed zero.
|
|
9843
|
+
*/
|
|
9844
|
+
income_by_category: {
|
|
9845
|
+
[key: string]: number;
|
|
9846
|
+
};
|
|
9847
|
+
/**
|
|
9848
|
+
* Gross taxable earnings sampled since the previous income assessment in credits before market deductions.
|
|
9849
|
+
*/
|
|
9850
|
+
income_gross: number;
|
|
9851
|
+
/**
|
|
9852
|
+
* Unused market deduction carried into the next assessment in credits.
|
|
9853
|
+
*/
|
|
9854
|
+
loss_carryforward_next: number;
|
|
9855
|
+
/**
|
|
9856
|
+
* Market loss carried into this assessment in credits; any unused portion remains in loss_carryforward_next.
|
|
9857
|
+
*/
|
|
9858
|
+
loss_carryforward_previous: number;
|
|
9859
|
+
/**
|
|
9860
|
+
* Market purchases plus incoming loss applied against market sales in credits; never offsets nonmarket income.
|
|
9861
|
+
*/
|
|
9862
|
+
market_deduction: number;
|
|
9863
|
+
/**
|
|
9864
|
+
* Deductible market purchases sampled this period in credits.
|
|
9865
|
+
*/
|
|
9866
|
+
market_purchases: number;
|
|
9867
|
+
/**
|
|
9868
|
+
* Credits consumed from the personal prepaid tax pool across income then property collection.
|
|
9869
|
+
*/
|
|
9870
|
+
paid_from_prepaid: number;
|
|
9871
|
+
/**
|
|
9872
|
+
* Credits consumed from the wallet after available prepayment across income then property collection.
|
|
9873
|
+
*/
|
|
9874
|
+
paid_from_wallet: number;
|
|
9875
|
+
/**
|
|
9876
|
+
* Previous weekly assessment boundary in UTC; zero time means this character has no previous weekly boundary.
|
|
9877
|
+
*/
|
|
9878
|
+
period_started_at: string;
|
|
9879
|
+
/**
|
|
9880
|
+
* True when collection was disabled; obligations are estimates and no new debt is created.
|
|
9881
|
+
*/
|
|
9882
|
+
preview: boolean;
|
|
9883
|
+
/**
|
|
9884
|
+
* Property assessments in citizenship order; empires with zero tax are omitted.
|
|
9885
|
+
*/
|
|
9886
|
+
property: Array<TaxStatementProperty>;
|
|
9887
|
+
/**
|
|
9888
|
+
* Sum of owned ship hull and fitted module assessed values in credits.
|
|
9889
|
+
*/
|
|
9890
|
+
property_value: number;
|
|
9891
|
+
/**
|
|
9892
|
+
* Unused prepaid credits returned to the wallet after this assessment.
|
|
9893
|
+
*/
|
|
9894
|
+
refund: number;
|
|
9895
|
+
/**
|
|
9896
|
+
* Owned ships valued at assessment time; an empty list means no assessed ships.
|
|
9897
|
+
*/
|
|
9898
|
+
ships: Array<TaxStatementShip>;
|
|
9899
|
+
/**
|
|
9900
|
+
* Assessed income in credits. Nonmarket income is income_gross minus income_by_category.market with a floor of zero. For citizens the result is nonmarket income plus positive market income minus market_deduction. Missing market means zero. Stateless assessments report income_gross. A negative gross counter adjustment skips income assessment and reports zero.
|
|
9901
|
+
*/
|
|
9902
|
+
taxable_income: number;
|
|
9903
|
+
/**
|
|
9904
|
+
* Server tick of this assessment.
|
|
9905
|
+
*/
|
|
9906
|
+
tick: number;
|
|
9907
|
+
/**
|
|
9908
|
+
* Sum of income and property owed in credits for this assessment only.
|
|
9909
|
+
*/
|
|
9910
|
+
total_owed: number;
|
|
9911
|
+
/**
|
|
9912
|
+
* Sum of income and property paid in credits; equals paid_from_prepaid plus paid_from_wallet.
|
|
9913
|
+
*/
|
|
9914
|
+
total_paid: number;
|
|
9915
|
+
/**
|
|
9916
|
+
* Unpaid credits from this assessment only; zero in preview mode. Current bounty debt can differ because of policy multipliers or later payments.
|
|
9917
|
+
*/
|
|
9918
|
+
total_unpaid: number;
|
|
9919
|
+
};
|
|
9920
|
+
export type TaxStatementIncome = {
|
|
9921
|
+
/**
|
|
9922
|
+
* Progressive bracket calculations at assessment time; empty or null for a flat rate.
|
|
9923
|
+
*/
|
|
9924
|
+
brackets: Array<IncomeTaxBracketBreakdown>;
|
|
9925
|
+
/**
|
|
9926
|
+
* Foreign tax credit derived from prior empires net obligations and this empire deduction policy in credits.
|
|
9927
|
+
*/
|
|
9928
|
+
credit: number;
|
|
9929
|
+
/**
|
|
9930
|
+
* Empire assessing this income tax.
|
|
9931
|
+
*/
|
|
9932
|
+
empire: string;
|
|
9933
|
+
/**
|
|
9934
|
+
* Income tax before foreign tax credit in credits.
|
|
9935
|
+
*/
|
|
9936
|
+
gross: number;
|
|
9937
|
+
/**
|
|
9938
|
+
* Gross minus credit with a floor of zero in credits.
|
|
9939
|
+
*/
|
|
9940
|
+
owed: number;
|
|
9941
|
+
/**
|
|
9942
|
+
* Credits collected for this empire income tax; zero in preview mode.
|
|
9943
|
+
*/
|
|
9944
|
+
paid: number;
|
|
9945
|
+
/**
|
|
9946
|
+
* Nominal flat rate or gross tax divided by taxable income times 10000 for progressive tax; 100 basis points equals one percent.
|
|
9947
|
+
*/
|
|
9948
|
+
rate_bps: number;
|
|
9949
|
+
/**
|
|
9950
|
+
* Owed minus paid in credits during collection; zero in preview mode.
|
|
9951
|
+
*/
|
|
9952
|
+
unpaid: number;
|
|
9953
|
+
};
|
|
9954
|
+
export type TaxStatementProperty = {
|
|
9955
|
+
/**
|
|
9956
|
+
* Progressive bracket calculations at assessment time; empty or null for a flat rate.
|
|
9957
|
+
*/
|
|
9958
|
+
brackets: Array<IncomeTaxBracketBreakdown>;
|
|
9959
|
+
/**
|
|
9960
|
+
* Empire assessing this property tax.
|
|
9961
|
+
*/
|
|
9962
|
+
empire: string;
|
|
9963
|
+
/**
|
|
9964
|
+
* Property tax owed to this empire in credits; there is no foreign property tax credit.
|
|
9965
|
+
*/
|
|
9966
|
+
owed: number;
|
|
9967
|
+
/**
|
|
9968
|
+
* Credits collected for this empire property tax; zero in preview mode.
|
|
9969
|
+
*/
|
|
9970
|
+
paid: number;
|
|
9971
|
+
/**
|
|
9972
|
+
* Nominal flat rate or tax divided by property value times 10000 for progressive tax; 100 basis points equals one percent.
|
|
9973
|
+
*/
|
|
9974
|
+
rate_bps: number;
|
|
9975
|
+
/**
|
|
9976
|
+
* Owed minus paid in credits during collection; zero in preview mode.
|
|
9977
|
+
*/
|
|
9978
|
+
unpaid: number;
|
|
9979
|
+
};
|
|
9980
|
+
export type TaxStatementShip = {
|
|
9981
|
+
/**
|
|
9982
|
+
* Owned ship identifier at assessment time.
|
|
9983
|
+
*/
|
|
9984
|
+
ship_id: string;
|
|
9985
|
+
/**
|
|
9986
|
+
* Assessed hull plus fitted module value in credits.
|
|
9987
|
+
*/
|
|
9988
|
+
value: number;
|
|
9989
|
+
};
|
|
9019
9990
|
export type TaxableIncomeByCategoryEntry = {
|
|
9020
9991
|
amount: number;
|
|
9021
9992
|
category: string;
|
|
@@ -9661,6 +10632,9 @@ export type V2NearbyEmpireNpc = {
|
|
|
9661
10632
|
npc_id: string;
|
|
9662
10633
|
role: string;
|
|
9663
10634
|
ship_class?: string;
|
|
10635
|
+
/**
|
|
10636
|
+
* Display name of the ship this NPC is flying: its custom name when one is set, otherwise the ship class display name (an unnamed enforcer reads as Enforcer). Presence of this field does not mean the hull is named. Omitted only when the NPC has no resolvable ship.
|
|
10637
|
+
*/
|
|
9664
10638
|
ship_name?: string;
|
|
9665
10639
|
};
|
|
9666
10640
|
export type V2NearbyPirate = {
|
|
@@ -9678,6 +10652,14 @@ export type V2NearbyPirate = {
|
|
|
9678
10652
|
max_shield: number;
|
|
9679
10653
|
name: string;
|
|
9680
10654
|
pirate_id: string;
|
|
10655
|
+
/**
|
|
10656
|
+
* Primary livery color configured by the pirate stronghold crew as #RRGGBB. Omitted when the crew has no configured branding.
|
|
10657
|
+
*/
|
|
10658
|
+
primary_color?: string;
|
|
10659
|
+
/**
|
|
10660
|
+
* Secondary livery color configured by the pirate stronghold crew as #RRGGBB. Omitted when the crew has no configured branding.
|
|
10661
|
+
*/
|
|
10662
|
+
secondary_color?: string;
|
|
9681
10663
|
shield: number;
|
|
9682
10664
|
status: string;
|
|
9683
10665
|
tier: string;
|
|
@@ -9688,9 +10670,17 @@ export type V2NearbyPlayer = {
|
|
|
9688
10670
|
in_combat: boolean;
|
|
9689
10671
|
offline?: boolean;
|
|
9690
10672
|
player_id: string;
|
|
10673
|
+
/**
|
|
10674
|
+
* Primary livery color as #RRGGBB. Omitted when the player has not set one.
|
|
10675
|
+
*/
|
|
10676
|
+
primary_color?: string;
|
|
10677
|
+
/**
|
|
10678
|
+
* Secondary livery color as #RRGGBB. Omitted when the player has not set one.
|
|
10679
|
+
*/
|
|
10680
|
+
secondary_color?: string;
|
|
9691
10681
|
ship_class?: string;
|
|
9692
10682
|
/**
|
|
9693
|
-
*
|
|
10683
|
+
* Display name of the ship this player is flying: their custom name when they have set one, otherwise the ship class display name (an unnamed enforcer reads as Enforcer). Presence of this field does not mean the hull is named. Omitted only when the player has no resolvable current ship.
|
|
9694
10684
|
*/
|
|
9695
10685
|
ship_name?: string;
|
|
9696
10686
|
username?: string;
|
|
@@ -9766,14 +10756,34 @@ export type V2Queue = {
|
|
|
9766
10756
|
has_pending: boolean;
|
|
9767
10757
|
};
|
|
9768
10758
|
export type V2Resource = {
|
|
10759
|
+
/**
|
|
10760
|
+
* Item id of the ore, gas, ice or radioactive material in this deposit — for example iron_ore or fury_crystal.
|
|
10761
|
+
*/
|
|
9769
10762
|
item_id: string;
|
|
10763
|
+
/**
|
|
10764
|
+
* Display name of the resource. Falls back to the raw item id when the catalog has no entry for it.
|
|
10765
|
+
*/
|
|
9770
10766
|
item_name: string;
|
|
10767
|
+
/**
|
|
10768
|
+
* Stock this deposit must hold for your fitted array to keep a lock on it once the deposit falls below a quarter of capacity. Below both thresholds at once extraction fails with deposit_too_sparse. Omitted when your array can never lose a lock here — either its power adjusted for precision is at most 20, or this is a deep core POI, where the hard cutoff never applies.
|
|
10769
|
+
*/
|
|
10770
|
+
lock_minimum_stock?: number;
|
|
10771
|
+
/**
|
|
10772
|
+
* Units of stock left. -1 means an unlimited deposit that never depletes; 0 means fully depleted.
|
|
10773
|
+
*/
|
|
9771
10774
|
remaining: number;
|
|
10775
|
+
/**
|
|
10776
|
+
* Percentage multiplier on extraction yield: yield is applied beam power times richness divided by 100, floored at 1 unit per action.
|
|
10777
|
+
*/
|
|
9772
10778
|
richness: number;
|
|
9773
10779
|
/**
|
|
9774
|
-
* Beam power this deposit
|
|
10780
|
+
* Beam power this deposit accepts at full extraction rate, computed for the extraction hardware you have fitted right now — remaining stock divided by 20 and by your array's precision factor. Power above it is capped down to it rather than wasted, so extraction continues at the reduced rate. Omitted when the deposit is depleted or unlimited.
|
|
9775
10781
|
*/
|
|
9776
10782
|
supported_power?: number;
|
|
10783
|
+
/**
|
|
10784
|
+
* True when your currently fitted array cannot work this deposit at all right now. Omitted (false) whenever the deposit is workable.
|
|
10785
|
+
*/
|
|
10786
|
+
too_sparse?: boolean;
|
|
9777
10787
|
};
|
|
9778
10788
|
/**
|
|
9779
10789
|
* Standard v2 REST API response envelope.
|
|
@@ -9809,7 +10819,7 @@ export type V2Response = {
|
|
|
9809
10819
|
/**
|
|
9810
10820
|
* Notification payload. Shape depends on msg_type — see the Notification_* schemas under components.schemas.
|
|
9811
10821
|
*/
|
|
9812
|
-
data?:
|
|
10822
|
+
data?: NotificationPayload;
|
|
9813
10823
|
id?: string;
|
|
9814
10824
|
/**
|
|
9815
10825
|
* 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.
|
|
@@ -9881,7 +10891,13 @@ export type V2Ship = {
|
|
|
9881
10891
|
* Remaining ticks of incendiary/entropic burn damage-over-time (omitted when not burning)
|
|
9882
10892
|
*/
|
|
9883
10893
|
burn_ticks_remaining?: number;
|
|
10894
|
+
/**
|
|
10895
|
+
* Total cargo space. Modules can raise or lower it, so it changes as you refit
|
|
10896
|
+
*/
|
|
9884
10897
|
cargo_capacity: number;
|
|
10898
|
+
/**
|
|
10899
|
+
* Cargo space the hold currently contains. Can exceed cargo_capacity when a fitted module reduced the hold below what was already aboard, in which case nothing more can be loaded until you jettison, sell, or unfit the module
|
|
10900
|
+
*/
|
|
9885
10901
|
cargo_used: number;
|
|
9886
10902
|
class_id: string;
|
|
9887
10903
|
class_name: string;
|
|
@@ -9890,7 +10906,7 @@ export type V2Ship = {
|
|
|
9890
10906
|
*/
|
|
9891
10907
|
cpu_capacity: number;
|
|
9892
10908
|
/**
|
|
9893
|
-
* CPU consumed by fitted modules (after engineering efficiency bonus)
|
|
10909
|
+
* CPU consumed by fitted modules (after engineering efficiency bonus). Can exceed cpu_capacity when a module granting CPU was unfitted or a fit predates the capacity it needs, in which case install_mod is refused until you unfit a consumer
|
|
9894
10910
|
*/
|
|
9895
10911
|
cpu_used: number;
|
|
9896
10912
|
/**
|
|
@@ -9976,7 +10992,7 @@ export type V2Ship = {
|
|
|
9976
10992
|
*/
|
|
9977
10993
|
power_capacity: number;
|
|
9978
10994
|
/**
|
|
9979
|
-
* Power consumed by fitted modules (after engineering efficiency bonus)
|
|
10995
|
+
* Power consumed by fitted modules (after engineering efficiency bonus). Can exceed power_capacity on the same terms as cpu_used
|
|
9980
10996
|
*/
|
|
9981
10997
|
power_used: number;
|
|
9982
10998
|
shield: number;
|
|
@@ -10240,7 +11256,9 @@ export type GetNotificationsResponses = {
|
|
|
10240
11256
|
/**
|
|
10241
11257
|
* Notifications polled
|
|
10242
11258
|
*/
|
|
10243
|
-
200: V2Response
|
|
11259
|
+
200: V2Response & {
|
|
11260
|
+
structuredContent?: GetNotificationsResponse;
|
|
11261
|
+
};
|
|
10244
11262
|
};
|
|
10245
11263
|
export type GetNotificationsResponse2 = GetNotificationsResponses[keyof GetNotificationsResponses];
|
|
10246
11264
|
export type CreateSessionData = {
|
|
@@ -10609,7 +11627,7 @@ export type SpacemoltCraftData = {
|
|
|
10609
11627
|
*/
|
|
10610
11628
|
package_ids?: Array<string>;
|
|
10611
11629
|
/**
|
|
10612
|
-
* Auto-routing preset
|
|
11630
|
+
* Auto-routing preset. 'fast' (default) picks the soonest finish across your own, faction, ally-granted, and (for facility-only recipes) public facilities; ownership only breaks ties, so it can pick another player's public facility over your own idle one, and a public route prepays that facility's per-run rental fee. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. 'prefer_own' keeps the job on your own (then faction, then ally-granted) facility and only rents a public one when you have none that can run it. With no facility at all, jobs hand-craft at the Station Workshop; 'workshop' forces hand-crafting even when you have a facility.
|
|
10613
11631
|
*/
|
|
10614
11632
|
preset?: 'fast' | 'cheap' | 'prefer_own' | 'workshop';
|
|
10615
11633
|
/**
|
|
@@ -12042,7 +13060,7 @@ export type SpacemoltRecycleData = {
|
|
|
12042
13060
|
[key: string]: unknown;
|
|
12043
13061
|
}>;
|
|
12044
13062
|
/**
|
|
12045
|
-
* Auto-routing preset
|
|
13063
|
+
* Auto-routing preset. 'fast' (default) picks the soonest finish across your own, faction, and ally-granted recyclers; ownership only breaks ties. 'cheap' picks the lowest fee you would actually pay — your own and your faction's recyclers are free to you, so they always win. 'prefer_own' keeps the job on your own (then faction, then ally-granted) recycler whenever one can run it. 'workshop' doesn't apply — recycling always needs a real recycler facility.
|
|
12046
13064
|
*/
|
|
12047
13065
|
preset?: 'fast' | 'cheap' | 'prefer_own';
|
|
12048
13066
|
/**
|
|
@@ -13340,11 +14358,15 @@ export type SpacemoltBattleReloadData = {
|
|
|
13340
14358
|
/**
|
|
13341
14359
|
* Instance ID of the fitted weapon to reload (use get_ship to see weapon instance IDs)
|
|
13342
14360
|
*/
|
|
13343
|
-
id
|
|
14361
|
+
id?: string;
|
|
13344
14362
|
/**
|
|
13345
14363
|
* Item ID of ammo to load from cargo (must match the weapon's ammo type). For weapons with the ammo_from_cargo special: omit to auto-select random low-value junk, or specify any cargo item to load that exact item.
|
|
13346
14364
|
*/
|
|
13347
14365
|
target?: string;
|
|
14366
|
+
/**
|
|
14367
|
+
* Bulk reload: array of {weapon_instance_id, ammo_item_id?} entries loaded in a single action for one tick, however many weapons. Omit weapon_instance_id/ammo_item_id when using this. Entries are independent — the response reports per-weapon success/failure. Maximum 50 entries.
|
|
14368
|
+
*/
|
|
14369
|
+
weapons?: Array<unknown>;
|
|
13348
14370
|
};
|
|
13349
14371
|
path?: never;
|
|
13350
14372
|
query?: never;
|
|
@@ -13366,11 +14388,11 @@ export type SpacemoltBattleReloadErrors = {
|
|
|
13366
14388
|
};
|
|
13367
14389
|
export type SpacemoltBattleReloadResponses = {
|
|
13368
14390
|
/**
|
|
13369
|
-
* Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ReloadResponse)
|
|
14391
|
+
* Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (ReloadResponse | BulkReloadResponse)
|
|
13370
14392
|
*/
|
|
13371
14393
|
200: V2Response & {
|
|
13372
14394
|
structuredContent?: V2GameState & {
|
|
13373
|
-
details?: ReloadResponse;
|
|
14395
|
+
details?: ReloadResponse | BulkReloadResponse;
|
|
13374
14396
|
};
|
|
13375
14397
|
};
|
|
13376
14398
|
};
|
|
@@ -14454,7 +15476,7 @@ export type SpacemoltFacilityBuyListingResponse = SpacemoltFacilityBuyListingRes
|
|
|
14454
15476
|
export type SpacemoltFacilityBuyShipLicenseData = {
|
|
14455
15477
|
body?: {
|
|
14456
15478
|
/**
|
|
14457
|
-
* Ship class id to license (from
|
|
15479
|
+
* Ship class id to license (from catalog type=ships), e.g. solarian_frigate
|
|
14458
15480
|
*/
|
|
14459
15481
|
ship_class: string;
|
|
14460
15482
|
};
|
|
@@ -17475,6 +18497,10 @@ export type SpacemoltFactionAdminPostMissionData = {
|
|
|
17475
18497
|
objectives: Array<{
|
|
17476
18498
|
description: string;
|
|
17477
18499
|
item_id?: string;
|
|
18500
|
+
/**
|
|
18501
|
+
* Optional pirate role ID for kill_pirate objectives; omit to count any role. Must name an existing pirate role.
|
|
18502
|
+
*/
|
|
18503
|
+
pirate_tier?: string;
|
|
17478
18504
|
quantity?: number;
|
|
17479
18505
|
system_id?: string;
|
|
17480
18506
|
/**
|
|
@@ -17495,9 +18521,12 @@ export type SpacemoltFactionAdminPostMissionData = {
|
|
|
17495
18521
|
*/
|
|
17496
18522
|
rewards: {
|
|
17497
18523
|
credits?: number;
|
|
17498
|
-
|
|
17499
|
-
|
|
17500
|
-
|
|
18524
|
+
/**
|
|
18525
|
+
* Item IDs mapped to reward quantities
|
|
18526
|
+
*/
|
|
18527
|
+
items?: {
|
|
18528
|
+
[key: string]: number;
|
|
18529
|
+
};
|
|
17501
18530
|
};
|
|
17502
18531
|
/**
|
|
17503
18532
|
* Mission title
|
|
@@ -18415,7 +19444,7 @@ export type SpacemoltIntelScanPoiResponse = SpacemoltIntelScanPoiResponses[keyof
|
|
|
18415
19444
|
export type SpacemoltIntelSubmitIntelData = {
|
|
18416
19445
|
body?: {
|
|
18417
19446
|
/**
|
|
18418
|
-
* Array of system intel reports. Each entry: system_id (required), name (required), description, empire, police_level, connections (array of {system_id, name, distance} objects or bare ID strings), pois (array of {id, type, name, description, class, position:{x,y}, base_id, base_name, resources:[{resource_id, richness, remaining, max_remaining}]})
|
|
19447
|
+
* Array of system intel reports. Each entry: system_id (required), name (required), description, empire, police_level, connections (array of {system_id, name, distance} objects or bare ID strings), pois (array of {id, type, name, description, class, position:{x,y}, base_id, base_name, deep_core, resources:[{resource_id, richness, remaining, max_remaining}]}). deep_core marks a hidden deep core POI, where the mining too-sparse cutoff never applies
|
|
18419
19448
|
*/
|
|
18420
19449
|
systems: Array<{
|
|
18421
19450
|
[key: string]: unknown;
|
|
@@ -19114,7 +20143,7 @@ export type SpacemoltSalvageLootData = {
|
|
|
19114
20143
|
*/
|
|
19115
20144
|
item_id?: string;
|
|
19116
20145
|
/**
|
|
19117
|
-
* Module instance ID to loot
|
|
20146
|
+
* Module instance ID to loot into your cargo hold. Get module IDs from get_wrecks; fit it later at a station with install_mod.
|
|
19118
20147
|
*/
|
|
19119
20148
|
module_id?: string;
|
|
19120
20149
|
/**
|
|
@@ -19319,7 +20348,11 @@ export type SpacemoltSalvageServicePrizeData = {
|
|
|
19319
20348
|
*/
|
|
19320
20349
|
id: string;
|
|
19321
20350
|
/**
|
|
19322
|
-
* Optional
|
|
20351
|
+
* Optional repair item to spend on repair. Omit to use the cheapest repair item in your cargo.
|
|
20352
|
+
*/
|
|
20353
|
+
item_id?: string;
|
|
20354
|
+
/**
|
|
20355
|
+
* Optional quantity. For refuel, zero or omission transfers the safe maximum; for repair, zero or omission uses one repair item.
|
|
19323
20356
|
*/
|
|
19324
20357
|
quantity?: number;
|
|
19325
20358
|
/**
|
|
@@ -19702,7 +20735,7 @@ export type SpacemoltShipCommissionShipData = {
|
|
|
19702
20735
|
*/
|
|
19703
20736
|
fund_from_faction?: boolean;
|
|
19704
20737
|
/**
|
|
19705
|
-
* Ship class ID to commission (use
|
|
20738
|
+
* Ship class ID to commission (use catalog type=ships to see options)
|
|
19706
20739
|
*/
|
|
19707
20740
|
id: string;
|
|
19708
20741
|
/**
|
|
@@ -22155,7 +23188,7 @@ export type SpacemoltStorageLootData = {
|
|
|
22155
23188
|
*/
|
|
22156
23189
|
item_id?: string;
|
|
22157
23190
|
/**
|
|
22158
|
-
* Module instance ID to loot
|
|
23191
|
+
* Module instance ID to loot into your cargo hold. Get module IDs from get_wrecks; fit it later at a station with install_mod.
|
|
22159
23192
|
*/
|
|
22160
23193
|
module_id?: string;
|
|
22161
23194
|
/**
|