@elite-dangerous-almanac/core 0.1.0-beta.8 → 0.1.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/PROVENANCE/i18n/SOURCES.md +125 -17
- package/PROVENANCE/materials/SOURCES.md +33 -12
- package/PROVENANCE/ships/SOURCES.md +74 -48
- package/README.md +47 -5
- package/THIRD_PARTY_NOTICES.md +14 -12
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/codex-region.js +1 -1
- package/dist/astro/galaxy-grid.js +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/mass-code.js +1 -1
- package/dist/astro/naming-region-origins.js +1 -1
- package/dist/astro/nebulae.js +1 -1
- package/dist/astro/permit-locked-regions.js +1 -1
- package/dist/astro/permit-locked-systems.js +1 -1
- package/dist/astro/permit-locks.js +1 -1
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/sector-name.js +1 -1
- package/dist/astro/system-address-input.js +1 -1
- package/dist/astro/system-address.js +1 -1
- package/dist/astro/system-name.js +1 -1
- package/dist/{chunk-DYFUHGJQ.js → chunk-2J2UV4ZX.js} +1 -1
- package/dist/{chunk-DB54PH3X.js → chunk-6EPYVBAX.js} +1 -1
- package/dist/{chunk-U6TMCYA6.js → chunk-6EUVIZAS.js} +1 -1
- package/dist/chunk-6RLMBSXE.js +1 -0
- package/dist/chunk-6RLMBSXE.js.map +1 -0
- package/dist/{chunk-NWPK6Q3S.js → chunk-ADLVPKUV.js} +1 -1
- package/dist/{chunk-S4DBNX2B.js → chunk-BKWLI44T.js} +1 -1
- package/dist/chunk-BMM6GQAU.js +1 -0
- package/dist/chunk-BMM6GQAU.js.map +1 -0
- package/dist/{chunk-WV5YM7H5.js → chunk-BMT3U46U.js} +1 -1
- package/dist/chunk-CTJQPQRA.js +1 -0
- package/dist/{chunk-NSSWYRHN.js.map → chunk-CTJQPQRA.js.map} +1 -1
- package/dist/{chunk-5H74FKY7.js → chunk-DAQ3PJ4R.js} +1 -1
- package/dist/{chunk-BTPV5CIF.js → chunk-DI5RXSJR.js} +1 -1
- package/dist/{chunk-ELIZXUMI.js → chunk-DLLBARN5.js} +1 -1
- package/dist/{chunk-J2PNZQY4.js → chunk-DVL5RBKX.js} +1 -1
- package/dist/{chunk-VXVUEF5U.js → chunk-E3BRVGJJ.js} +1 -1
- package/dist/{chunk-MFV4VZFP.js → chunk-EBAHNZ36.js} +1 -1
- package/dist/{chunk-BSOIPL4A.js → chunk-EJMNNQIS.js} +1 -1
- package/dist/{chunk-BSOIPL4A.js.map → chunk-EJMNNQIS.js.map} +1 -1
- package/dist/chunk-EKWLAHRG.js +1 -0
- package/dist/chunk-EKWLAHRG.js.map +1 -0
- package/dist/chunk-EU42PAV4.js +1 -0
- package/dist/{chunk-32PVERNH.js.map → chunk-EU42PAV4.js.map} +1 -1
- package/dist/{chunk-NQ2ID6BF.js → chunk-FEER4ERG.js} +1 -1
- package/dist/{chunk-DHOCTGWB.js → chunk-FGNJ7EVM.js} +1 -1
- package/dist/{chunk-JWJ7RSZC.js → chunk-G3265B27.js} +1 -1
- package/dist/chunk-GKDEI2SQ.js +1 -0
- package/dist/chunk-GKDEI2SQ.js.map +1 -0
- package/dist/chunk-GOMBLS2T.js +1 -0
- package/dist/chunk-GOMBLS2T.js.map +1 -0
- package/dist/{chunk-V3DW67W2.js → chunk-GRIK3EDH.js} +1 -1
- package/dist/{chunk-RIT6MOO5.js → chunk-GVLDFJEY.js} +1 -1
- package/dist/{chunk-RIT6MOO5.js.map → chunk-GVLDFJEY.js.map} +1 -1
- package/dist/chunk-H3HMVGEY.js +1 -0
- package/dist/chunk-H3HMVGEY.js.map +1 -0
- package/dist/chunk-HRVIHQ4A.js +1 -0
- package/dist/chunk-HRVIHQ4A.js.map +1 -0
- package/dist/{chunk-QTDBO7R2.js → chunk-IYU4WLFM.js} +1 -1
- package/dist/{chunk-5EUX3L76.js → chunk-JWWYAMGD.js} +1 -1
- package/dist/chunk-KAA4VOOB.js +1 -0
- package/dist/chunk-KAA4VOOB.js.map +1 -0
- package/dist/{chunk-ZFT56QFR.js → chunk-L7CLUYZ6.js} +1 -1
- package/dist/chunk-M5IBENCW.js +1 -0
- package/dist/chunk-M5IBENCW.js.map +1 -0
- package/dist/{chunk-IH4NXKVW.js → chunk-NEEFT7WH.js} +1 -1
- package/dist/{chunk-VZXL5KBR.js → chunk-NLBUKXNV.js} +1 -1
- package/dist/{chunk-4OSCSACF.js → chunk-OCND33TO.js} +1 -1
- package/dist/chunk-P2QOL63K.js +1 -0
- package/dist/chunk-P2QOL63K.js.map +1 -0
- package/dist/{chunk-PMJG7PHU.js → chunk-PHPLZEFS.js} +1 -1
- package/dist/chunk-PKWVG2JY.js +1 -0
- package/dist/chunk-PKWVG2JY.js.map +1 -0
- package/dist/chunk-PNZCLQDJ.js +1 -0
- package/dist/{chunk-WASJ5U5A.js.map → chunk-PNZCLQDJ.js.map} +1 -1
- package/dist/{chunk-DACZE3HX.js → chunk-POZTXBSN.js} +1 -1
- package/dist/chunk-Q4E2V6RE.js +1 -0
- package/dist/chunk-Q4E2V6RE.js.map +1 -0
- package/dist/{chunk-DNTN34M4.js → chunk-QI22FKBG.js} +1 -1
- package/dist/chunk-QTZPA2FR.js +1 -0
- package/dist/{chunk-TH4S5MVD.js.map → chunk-QTZPA2FR.js.map} +1 -1
- package/dist/{chunk-PRFXKOCZ.js → chunk-R26GVRMI.js} +1 -1
- package/dist/{chunk-I7PIDRMU.js → chunk-RAO35XDF.js} +1 -1
- package/dist/chunk-TFPIPIMU.js +1 -0
- package/dist/chunk-TFPIPIMU.js.map +1 -0
- package/dist/{chunk-JYQE53FL.js → chunk-TMMGS6TC.js} +1 -1
- package/dist/{chunk-ZAHNOQGG.js → chunk-UBYO7VZR.js} +1 -1
- package/dist/{chunk-Z4GTTB7I.js → chunk-UXBCLFGU.js} +1 -1
- package/dist/{chunk-RKLJ7EEE.js → chunk-UXFMVZAY.js} +1 -1
- package/dist/chunk-VB3XZGIB.js +1 -0
- package/dist/chunk-VB3XZGIB.js.map +1 -0
- package/dist/chunk-VKN65H2U.js +1 -0
- package/dist/chunk-VKN65H2U.js.map +1 -0
- package/dist/{chunk-MPZGCTRG.js → chunk-VZZUNSDF.js} +1 -1
- package/dist/chunk-VZZUNSDF.js.map +1 -0
- package/dist/{chunk-ZJB5UYNE.js → chunk-W5G2NUCZ.js} +1 -1
- package/dist/{chunk-ZJB5UYNE.js.map → chunk-W5G2NUCZ.js.map} +1 -1
- package/dist/{chunk-CI3ACMRA.js → chunk-WHWFKHV3.js} +1 -1
- package/dist/{chunk-CI3ACMRA.js.map → chunk-WHWFKHV3.js.map} +1 -1
- package/dist/{chunk-IJRKEODR.js → chunk-WNGQ3IAM.js} +1 -1
- package/dist/chunk-WVKRSRLO.js +1 -0
- package/dist/chunk-WVKRSRLO.js.map +1 -0
- package/dist/{chunk-ESEM3LPU.js → chunk-XN6Q7LWU.js} +1 -1
- package/dist/chunk-XT6KKGSE.js +1 -0
- package/dist/chunk-XT6KKGSE.js.map +1 -0
- package/dist/{chunk-KMFUCORC.js → chunk-Y6UZWNP4.js} +1 -1
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-costs.js +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/diagnostics.d.ts +62 -0
- package/dist/i18n/diagnostics.js +1 -0
- package/dist/i18n/diagnostics.js.map +1 -0
- package/dist/i18n/engineering-groups.d.ts +20 -0
- package/dist/i18n/engineering-groups.js +1 -0
- package/dist/i18n/engineering-groups.js.map +1 -0
- package/dist/i18n/experimental-effect-descriptions.d.ts +20 -0
- package/dist/i18n/experimental-effect-descriptions.js +1 -0
- package/dist/i18n/experimental-effect-descriptions.js.map +1 -0
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +30 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.d.ts +31 -0
- package/dist/i18n/materials.js +1 -0
- package/dist/i18n/materials.js.map +1 -0
- package/dist/i18n/micro-resources.d.ts +31 -0
- package/dist/i18n/micro-resources.js +1 -0
- package/dist/i18n/micro-resources.js.map +1 -0
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/pre-engineered.d.ts +39 -0
- package/dist/i18n/pre-engineered.js +1 -0
- package/dist/i18n/pre-engineered.js.map +1 -0
- package/dist/i18n/ships.d.ts +36 -0
- package/dist/i18n/ships.js +1 -0
- package/dist/i18n/ships.js.map +1 -0
- package/dist/i18n/slots.d.ts +42 -0
- package/dist/i18n/slots.js +1 -0
- package/dist/i18n/slots.js.map +1 -0
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.d.ts +2 -2
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources-data.d.ts +3 -3
- package/dist/materials/micro-resources-data.js +1 -1
- package/dist/materials/micro-resources-item.d.ts +3 -3
- package/dist/materials/micro-resources-item.js +1 -1
- package/dist/materials/micro-resources.d.ts +8 -8
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/blueprint-costs.d.ts +13 -11
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-costs.js.map +1 -1
- package/dist/ships/blueprint-journal.d.ts +6 -7
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/blueprints.js +1 -1
- package/dist/ships/default-loadouts.js +1 -1
- package/dist/ships/distributor.d.ts +98 -0
- package/dist/ships/distributor.js +1 -0
- package/dist/ships/distributor.js.map +1 -0
- package/dist/ships/engineering-options.d.ts +28 -29
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/experimental-effect-costs.js +1 -1
- package/dist/ships/experimental-effects.js +1 -1
- package/dist/ships/gunsights.js +1 -1
- package/dist/ships/index.d.ts +9 -6
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-calculations.d.ts +21 -11
- package/dist/ships/loadout-calculations.js +1 -1
- package/dist/ships/loadout-validation.d.ts +7 -6
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules.d.ts +5 -5
- package/dist/ships/modules.js +1 -1
- package/dist/ships/power.d.ts +39 -11
- package/dist/ships/power.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +20 -4
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +7 -8
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/shield-recovery.d.ts +12 -6
- package/dist/ships/shield-recovery.js +1 -1
- package/dist/ships/ship-loadout.d.ts +1792 -18
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/ships.js +1 -1
- package/dist/ships/slef.js +1 -1
- package/dist/ships/slots.js +1 -1
- package/dist/ships/source-purchase.js +1 -1
- package/package.json +39 -3
- package/dist/chunk-32PVERNH.js +0 -1
- package/dist/chunk-5W43EQEQ.js +0 -1
- package/dist/chunk-5W43EQEQ.js.map +0 -1
- package/dist/chunk-76XKY2Y2.js +0 -1
- package/dist/chunk-76XKY2Y2.js.map +0 -1
- package/dist/chunk-B5TT26XE.js +0 -1
- package/dist/chunk-B5TT26XE.js.map +0 -1
- package/dist/chunk-HOKW2EWE.js +0 -1
- package/dist/chunk-HOKW2EWE.js.map +0 -1
- package/dist/chunk-IZGYEP2X.js +0 -1
- package/dist/chunk-IZGYEP2X.js.map +0 -1
- package/dist/chunk-JWRV67UY.js +0 -1
- package/dist/chunk-JWRV67UY.js.map +0 -1
- package/dist/chunk-MPZGCTRG.js.map +0 -1
- package/dist/chunk-NSSWYRHN.js +0 -1
- package/dist/chunk-RF2IKLWQ.js +0 -1
- package/dist/chunk-RF2IKLWQ.js.map +0 -1
- package/dist/chunk-TH4S5MVD.js +0 -1
- package/dist/chunk-WASJ5U5A.js +0 -1
- package/dist/ship-loadout-B5mQ1l-N.d.ts +0 -1411
- /package/dist/{chunk-DYFUHGJQ.js.map → chunk-2J2UV4ZX.js.map} +0 -0
- /package/dist/{chunk-DB54PH3X.js.map → chunk-6EPYVBAX.js.map} +0 -0
- /package/dist/{chunk-U6TMCYA6.js.map → chunk-6EUVIZAS.js.map} +0 -0
- /package/dist/{chunk-NWPK6Q3S.js.map → chunk-ADLVPKUV.js.map} +0 -0
- /package/dist/{chunk-S4DBNX2B.js.map → chunk-BKWLI44T.js.map} +0 -0
- /package/dist/{chunk-WV5YM7H5.js.map → chunk-BMT3U46U.js.map} +0 -0
- /package/dist/{chunk-5H74FKY7.js.map → chunk-DAQ3PJ4R.js.map} +0 -0
- /package/dist/{chunk-BTPV5CIF.js.map → chunk-DI5RXSJR.js.map} +0 -0
- /package/dist/{chunk-ELIZXUMI.js.map → chunk-DLLBARN5.js.map} +0 -0
- /package/dist/{chunk-J2PNZQY4.js.map → chunk-DVL5RBKX.js.map} +0 -0
- /package/dist/{chunk-VXVUEF5U.js.map → chunk-E3BRVGJJ.js.map} +0 -0
- /package/dist/{chunk-MFV4VZFP.js.map → chunk-EBAHNZ36.js.map} +0 -0
- /package/dist/{chunk-NQ2ID6BF.js.map → chunk-FEER4ERG.js.map} +0 -0
- /package/dist/{chunk-DHOCTGWB.js.map → chunk-FGNJ7EVM.js.map} +0 -0
- /package/dist/{chunk-JWJ7RSZC.js.map → chunk-G3265B27.js.map} +0 -0
- /package/dist/{chunk-V3DW67W2.js.map → chunk-GRIK3EDH.js.map} +0 -0
- /package/dist/{chunk-QTDBO7R2.js.map → chunk-IYU4WLFM.js.map} +0 -0
- /package/dist/{chunk-5EUX3L76.js.map → chunk-JWWYAMGD.js.map} +0 -0
- /package/dist/{chunk-ZFT56QFR.js.map → chunk-L7CLUYZ6.js.map} +0 -0
- /package/dist/{chunk-IH4NXKVW.js.map → chunk-NEEFT7WH.js.map} +0 -0
- /package/dist/{chunk-VZXL5KBR.js.map → chunk-NLBUKXNV.js.map} +0 -0
- /package/dist/{chunk-4OSCSACF.js.map → chunk-OCND33TO.js.map} +0 -0
- /package/dist/{chunk-PMJG7PHU.js.map → chunk-PHPLZEFS.js.map} +0 -0
- /package/dist/{chunk-DACZE3HX.js.map → chunk-POZTXBSN.js.map} +0 -0
- /package/dist/{chunk-DNTN34M4.js.map → chunk-QI22FKBG.js.map} +0 -0
- /package/dist/{chunk-PRFXKOCZ.js.map → chunk-R26GVRMI.js.map} +0 -0
- /package/dist/{chunk-I7PIDRMU.js.map → chunk-RAO35XDF.js.map} +0 -0
- /package/dist/{chunk-JYQE53FL.js.map → chunk-TMMGS6TC.js.map} +0 -0
- /package/dist/{chunk-ZAHNOQGG.js.map → chunk-UBYO7VZR.js.map} +0 -0
- /package/dist/{chunk-Z4GTTB7I.js.map → chunk-UXBCLFGU.js.map} +0 -0
- /package/dist/{chunk-RKLJ7EEE.js.map → chunk-UXFMVZAY.js.map} +0 -0
- /package/dist/{chunk-IJRKEODR.js.map → chunk-WNGQ3IAM.js.map} +0 -0
- /package/dist/{chunk-ESEM3LPU.js.map → chunk-XN6Q7LWU.js.map} +0 -0
- /package/dist/{chunk-KMFUCORC.js.map → chunk-Y6UZWNP4.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Localized game-name catalogues
|
|
2
2
|
|
|
3
3
|
These catalogues keep the canonical English display names already published by the
|
|
4
|
-
ships data domain and add only localized values carried explicitly by
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
ships data domain and add only localized values carried explicitly by accepted sources.
|
|
5
|
+
They are deliberately sparse: absence means that no accepted source carried a value, and
|
|
6
|
+
the lookup API returns `null` for that locale rather than treating English as a
|
|
7
|
+
translation.
|
|
8
8
|
|
|
9
9
|
## `module-names.jsonc`
|
|
10
10
|
|
|
@@ -58,31 +58,139 @@ a translation.
|
|
|
58
58
|
Spanish, French, Portuguese and Russian.
|
|
59
59
|
- **Manual corrections:** none.
|
|
60
60
|
|
|
61
|
-
##
|
|
61
|
+
## `material-names.jsonc`
|
|
62
62
|
|
|
63
|
-
- **Acquired:** 2026-08-
|
|
63
|
+
- **Acquired:** 2026-08-16 UTC.
|
|
64
|
+
- **Odyssey Materials Helper revision:** commit
|
|
65
|
+
`23343c453938e724f317c56e9eb7db0dbfa71f78`.
|
|
66
|
+
- **Derivation:** each of the 146 current symbols and its canonical English name comes
|
|
67
|
+
from the three `data/materials/materials-*.jsonc` catalogues. The lower-cased symbol
|
|
68
|
+
joins directly to the final component of Odyssey Materials Helper's message key in
|
|
69
|
+
`locale/material/horizons/{raw,manufactured,encoded}.csv`; only that row's explicit
|
|
70
|
+
localized columns are copied. The source's English column is not copied because the
|
|
71
|
+
owning materials catalogues remain authoritative for canonical names. The canonical
|
|
72
|
+
English values therefore keep the existing `Segment` spelling and omit the source's
|
|
73
|
+
parenthetical Guardian and Thargoid category labels where the owning catalogue does;
|
|
74
|
+
localized columns remain verbatim source values.
|
|
75
|
+
- **Coverage:** English, Spanish and Russian cover all 146 materials. The explicit
|
|
76
|
+
translations cover 128 in German, 140 in French, 140 in Portuguese and 28 in
|
|
77
|
+
Georgian. Fourteen of the source's Georgian values are byte-for-byte equal to the
|
|
78
|
+
canonical English spelling and are retained verbatim; they are explicit source values,
|
|
79
|
+
not lookup-generated fallbacks. The pinned source carries no Simplified Chinese
|
|
80
|
+
material names.
|
|
81
|
+
- **Manual corrections:** none.
|
|
82
|
+
|
|
83
|
+
## `micro-resource-names.jsonc`
|
|
84
|
+
|
|
85
|
+
- **Acquired:** 2026-08-16 UTC.
|
|
86
|
+
- **Odyssey Materials Helper revision:** commit
|
|
87
|
+
`23343c453938e724f317c56e9eb7db0dbfa71f78`.
|
|
88
|
+
- **Supplemental source:** in-game verification, acquired 2026-08-16 UTC; immutable
|
|
89
|
+
revision unavailable.
|
|
90
|
+
- **Derivation:** each of the 226 current symbols and its canonical English name comes
|
|
91
|
+
from the four `data/materials/micro-resources-*.jsonc` catalogues. The 196 FDevIDs-backed
|
|
92
|
+
records join directly to the final component of Odyssey Materials Helper's message key
|
|
93
|
+
in `locale/material/odyssey/{asset,consumable,data,good}.csv`; only that row's explicit
|
|
94
|
+
localized columns are copied. Twenty-eight of the 30 in-game-backed records also have
|
|
95
|
+
rows in Odyssey Materials Helper, while `PowerVirus` and
|
|
96
|
+
`SmallCapacityPowerRegulator` do not. All 30 take the explicit in-game `name` values for
|
|
97
|
+
German, Spanish, French, Brazilian Portuguese and Russian. The Brazilian Portuguese
|
|
98
|
+
values are stored under `pt`, matching the existing catalogue values described below.
|
|
99
|
+
In both cases the owning catalogue remains authoritative for canonical English names.
|
|
100
|
+
- **Coverage:** English, Spanish and Russian cover all 226 micro resources. The explicit
|
|
101
|
+
translations cover 218 in German and Portuguese, 225 in French, 6 in Simplified Chinese
|
|
102
|
+
and 10 in Georgian. Five of the source's Georgian values are byte-for-byte equal to the
|
|
103
|
+
canonical English spelling and are retained verbatim; they are explicit source values,
|
|
104
|
+
not lookup-generated fallbacks.
|
|
105
|
+
- **Manual corrections:** the 30 in-game values labelled Brazilian Portuguese are stored
|
|
106
|
+
under `pt`, matching the 188 existing Portuguese entries because both sets contain the
|
|
107
|
+
same Brazilian Portuguese game text. `pt-BR` lookups resolve these values through the
|
|
108
|
+
regional-to-language fallback.
|
|
109
|
+
|
|
110
|
+
## `ship-names.jsonc`
|
|
111
|
+
|
|
112
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
64
113
|
- **Odyssey Materials Helper revision:** commit
|
|
65
114
|
`23343c453938e724f317c56e9eb7db0dbfa71f78`;
|
|
66
115
|
`application/src/main/resources/locale/ships/ships.csv` has SHA-256
|
|
67
116
|
`6785f7cea00f36ca0a853091fd88f8ed5481a60f55c269643bff1ab0c3d6993d`.
|
|
68
117
|
- **EDSY revision:** commit `e446fbe6e4597dea7ab0bd3105b9a36642388040`;
|
|
69
118
|
database version `424009901`, last-modified marker `20260810`.
|
|
70
|
-
- **
|
|
119
|
+
- **Derivation:** each of the 48 current ship symbols and canonical English names comes
|
|
120
|
+
from `data/ships/ships.jsonc`. The symbol is joined to Odyssey Materials
|
|
71
121
|
Helper's `ships.name.*` key after removing punctuation and folding case. EDSY's
|
|
72
122
|
`eddb.js` `ship.fdname` supplies the second join, with explicit `ship-<id>` language
|
|
73
123
|
entries filling locales absent from the CSV. The resulting source-backed coverage is
|
|
74
|
-
|
|
124
|
+
48 ships in Spanish, 44 in French, 38 in Portuguese, 48 in Russian, 48 in
|
|
125
|
+
Simplified Chinese and 47 in Georgian;
|
|
75
126
|
no accepted source carries a German ship-name table.
|
|
76
|
-
- **Standing conclusion:**
|
|
77
|
-
to the canonical English ship
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
127
|
+
- **Standing conclusion:** every source-backed non-English value is byte-for-byte equal
|
|
128
|
+
to the canonical English ship name. The explicit values remain in the catalogue so a
|
|
129
|
+
lookup distinguishes a source-backed same spelling from an unavailable translation.
|
|
130
|
+
- **Manual corrections:** none.
|
|
131
|
+
|
|
132
|
+
## `ship-manufacturer-names.jsonc`
|
|
133
|
+
|
|
134
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
135
|
+
- **Derivation:** all 48 symbol-to-manufacturer values are projected directly from
|
|
136
|
+
`data/ships/ships.jsonc`, whose pinned sources and corrections are recorded in
|
|
137
|
+
`data/ships/SOURCES.md`. Repeated manufacturer strings remain keyed by ship symbol so
|
|
138
|
+
consumers need no separate manufacturer identity space.
|
|
139
|
+
- **Coverage:** canonical English covers every ship. The accepted sources carry no
|
|
140
|
+
localized manufacturer labels.
|
|
141
|
+
- **Manual corrections:** none.
|
|
142
|
+
|
|
143
|
+
## `engineering-group-names.jsonc`
|
|
144
|
+
|
|
145
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
146
|
+
- **EDSY revision:** commit `e446fbe6e4597dea7ab0bd3105b9a36642388040`;
|
|
147
|
+
database version `424009901`, last-modified marker `20260810`; `lang-en.json`,
|
|
148
|
+
`lang-pt.json` and `lang-ru.json` have Git blob ids
|
|
149
|
+
`9b199db635f7b968b75c8e9a14bdce68e37e4120`,
|
|
150
|
+
`493fa09c4d4a11f0282e1e4076a67fed8d7f317e` and
|
|
151
|
+
`36496372d056754c34da03ca6836e27987c96b6a` respectively.
|
|
152
|
+
- **Derivation:** each of the 48 group ids and its canonical English name is projected
|
|
153
|
+
from `data/ships/engineering-options.jsonc`. That catalogue derives its group menus
|
|
154
|
+
from EDSY, with the supplemental sources and corrections recorded in
|
|
155
|
+
`data/ships/SOURCES.md`. Where a canonical English name matches an EDSY `mtype-*`
|
|
156
|
+
value in `lang-en.json` byte-for-byte and uniquely, explicit values with the same key
|
|
157
|
+
are copied from `lang-pt.json` and `lang-ru.json`.
|
|
158
|
+
- **Coverage:** canonical English covers every engineering option group. Portuguese and
|
|
159
|
+
Russian each cover 44 of 48. The Guardian power-plant, power-distributor and
|
|
160
|
+
hull-reinforcement groups have no distinct EDSY label, and EDSY carries no Portuguese
|
|
161
|
+
or Russian value for `frameShiftDrivesSCO`.
|
|
162
|
+
- **Manual corrections:** none.
|
|
163
|
+
|
|
164
|
+
## `experimental-effect-descriptions.jsonc`
|
|
165
|
+
|
|
166
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
167
|
+
- **EDSY revision:** commit `e446fbe6e4597dea7ab0bd3105b9a36642388040`;
|
|
168
|
+
database version `424009901`, last-modified marker `20260810`.
|
|
169
|
+
- **Derivation:** the 29 effects with a `description` project that canonical English
|
|
170
|
+
value from `data/ships/experimental-effects.jsonc`. Effects without a source-backed
|
|
171
|
+
description remain absent rather than receiving generated prose.
|
|
172
|
+
- **Coverage:** canonical English covers 29 of 86 effects. The accepted sources carry no
|
|
173
|
+
localized description table.
|
|
174
|
+
- **Manual corrections:** none.
|
|
175
|
+
|
|
176
|
+
## `pre-engineered-variant-names.jsonc`
|
|
177
|
+
|
|
178
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
179
|
+
- **Derivation:** all 76 compound identities and English names come from
|
|
180
|
+
`data/ships/pre-engineered.jsonc`. An identity combines the base module symbol,
|
|
181
|
+
blueprint, optional experimental effect and acquisition route. When a variant name
|
|
182
|
+
exactly matches its base module's canonical name, it reuses that record from
|
|
183
|
+
`module-names.jsonc`; the 28 distinct display records are stored once. Fixed reward
|
|
184
|
+
names such as the three `Decorative_*` festive launchers remain canonical English.
|
|
185
|
+
- **Coverage:** English covers every variant. Ordinary names inherit the explicit
|
|
186
|
+
localized values available for their base module; fixed reward names have no accepted
|
|
187
|
+
translation source.
|
|
81
188
|
- **Manual corrections:** none.
|
|
82
189
|
|
|
83
190
|
## Known gaps
|
|
84
191
|
|
|
85
|
-
Localized coverage follows the
|
|
86
|
-
locale.
|
|
87
|
-
|
|
88
|
-
|
|
192
|
+
Localized coverage follows the accepted sources and is not complete for every catalogue or
|
|
193
|
+
locale. The accepted sources carry only canonical English for some engineering-group labels,
|
|
194
|
+
slot and restriction labels, fixed reward names, and structured loadout, calculation, SLEF
|
|
195
|
+
and edit messages. Missing source-backed translations remain tracked by
|
|
196
|
+
[#320](https://github.com/DarkSession/Elite-Dangerous-Almanac/issues/320).
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Data sources — `data/materials/`
|
|
2
2
|
|
|
3
|
-
**Acquired:** 2026-07-24. **Upstream revision:** unavailable for both sources below.
|
|
4
|
-
|
|
5
3
|
## Materials — raw, manufactured, encoded
|
|
6
4
|
|
|
5
|
+
**Acquired:** 2026-07-24. **Upstream revision:** unavailable for both sources below.
|
|
6
|
+
|
|
7
7
|
- **Files:** `materials-raw.jsonc`, `materials-manufactured.jsonc`,
|
|
8
8
|
`materials-encoded.jsonc`.
|
|
9
9
|
- **Primary source:** EDCD FDevIDs, `material.csv`. It provides, for each material, the
|
|
@@ -52,18 +52,39 @@ grade 3), which is why it is used to fill the gap.
|
|
|
52
52
|
|
|
53
53
|
- **Files:** `micro-resources-component.jsonc`, `micro-resources-consumable.jsonc`,
|
|
54
54
|
`micro-resources-data.jsonc`, `micro-resources-item.jsonc`.
|
|
55
|
-
- **
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
- **Sources:**
|
|
56
|
+
- EDCD FDevIDs `microresources.csv`, acquired 2026-07-24; upstream revision
|
|
57
|
+
unavailable. It provides 196 records, including each internal symbol,
|
|
58
|
+
category (Component / Consumable / Data / Item) and English display name.
|
|
59
|
+
- In-game verification, acquired 2026-08-16 UTC; immutable revision unavailable. It
|
|
60
|
+
provides 30 player-facing identities absent from the FDevIDs snapshot, their internal
|
|
61
|
+
identifiers and English display names, and player categories for 29 of them.
|
|
62
|
+
`PowerMegashipData` is the exception documented under manual corrections.
|
|
63
|
+
- Inara component pages, acquired 2026-08-16 UTC; immutable revision unavailable. Its
|
|
64
|
+
six Power data pages independently classify Power Association Data, Power Classified
|
|
65
|
+
Data, Power Industrial Data, Power Injection Malware, Power Megaship Data and Power
|
|
66
|
+
Political Data as Odyssey data resources.
|
|
58
67
|
- **Derivation:**
|
|
59
|
-
- `symbol` is
|
|
60
|
-
with the same field and meaning as on a ship, module or material.
|
|
61
|
-
|
|
68
|
+
- `symbol` is the source's internal id (e.g. `graphene`) — what the player journal
|
|
69
|
+
reports with the same field and meaning as on a ship, module or material. Frontier's
|
|
70
|
+
numeric micro-resource id from the FDevIDs CSV is **not** carried.
|
|
62
71
|
- `name` is the English display name (`Graphene`).
|
|
63
|
-
-
|
|
64
|
-
(matching how ship modules and materials spell their category).
|
|
65
|
-
|
|
66
|
-
on every record.
|
|
72
|
+
- The source category is lower-cased to `component` / `consumable` / `data` / `item`
|
|
73
|
+
(matching how ship modules and materials spell their category). In-game `assets` map
|
|
74
|
+
to `component` and `goods` map to `item`. Each data file holds exactly one category,
|
|
75
|
+
so the category is represented by the file rather than repeated on every record.
|
|
67
76
|
- Micro resources have **no grade and no line** — those belong to the ship-side
|
|
68
77
|
engineering materials above; each data-file record is a plain `{ symbol, name }`
|
|
69
78
|
registry record.
|
|
79
|
+
- Three registered identities are deliberately absent: `FlightData` and
|
|
80
|
+
`Humanoid_ShieldGrenade_Bubble` have no localization and are not player-facing
|
|
81
|
+
resources; `NOCData_Tutorial` is the tutorial-only duplicate of `NOCData` and has the
|
|
82
|
+
same English display name. The localized, player-facing
|
|
83
|
+
`SmallCapacityPowerRegulator` record is retained.
|
|
84
|
+
- **Manual corrections:** `PowerMegashipData` is assigned to `data`. The encoded-material
|
|
85
|
+
classification attached to its in-game localization record is rejected: Inara
|
|
86
|
+
classifies it alongside the other five Power data resources, establishing that it is an
|
|
87
|
+
Odyssey micro resource with no material grade or line. The in-game English names are
|
|
88
|
+
otherwise retained verbatim, including
|
|
89
|
+
`Installation Intelligence Report`, `Personal Protective Equipment` and
|
|
90
|
+
`Contaminated Spire Compound` where the community table differs.
|
|
@@ -379,11 +379,11 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
379
379
|
II's `Int_MkIIAgileBoost_Engine_*` thrusters.
|
|
380
380
|
- **A fuel tank is the one module built for two kinds of mount:** it is `fuelTank`
|
|
381
381
|
and also fits any optional slot large enough, exactly as the game sells it.
|
|
382
|
-
- **`kind` is the ordinary engineering-menu family.** The
|
|
382
|
+
- **`kind` is the ordinary engineering-menu family.** The 1005 records mapped by
|
|
383
383
|
`engineering-options.jsonc` repeat that map's group key in the compact on-disk `kind`
|
|
384
|
-
field.
|
|
385
|
-
|
|
386
|
-
|
|
384
|
+
field. The remaining 194 records carry no `kind` because they have no ordinary
|
|
385
|
+
engineering menu; this includes the five Enzyme/AX weapons, the fixed Mining Laser and
|
|
386
|
+
Abrasion Blaster, and the 16 cargo racks documented under Engineering options below.
|
|
387
387
|
The group source, derivation, split
|
|
388
388
|
Guardian families and coverage are documented under Engineering options below; this
|
|
389
389
|
field is a projection of that map, not a separate classification source.
|
|
@@ -1100,8 +1100,9 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1100
1100
|
qualitative descriptions), and `experimental-effect-costs.jsonc` (the matching
|
|
1101
1101
|
one-application material costs).
|
|
1102
1102
|
Stored modifier labels use journal `Modifier` **Labels**. Each blueprint is `{ name, grades }`
|
|
1103
|
-
(each grade `{ features, damageDistribution? }`)
|
|
1104
|
-
|
|
1103
|
+
(each grade `{ features, damageDistribution? }`). The cost file uses the same ids and
|
|
1104
|
+
grades for the craftable subset; fixed reward identities without an ordinary cost are
|
|
1105
|
+
absent. Each experimental effect is
|
|
1105
1106
|
`{ name, modifiers, damageDistribution?, description? }`, with its cost file keyed by
|
|
1106
1107
|
the same effect ids.
|
|
1107
1108
|
- **Display names:** each blueprint and experimental effect carries its `name`.
|
|
@@ -1150,8 +1151,11 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1150
1151
|
resolves each to the material's Frontier `symbol` against the `materials` domain at
|
|
1151
1152
|
generation time, emitting `{ symbol, name, count }` per requirement (join `symbol` to
|
|
1152
1153
|
`materials` for the material's own grade and category). **Kept as-is:**
|
|
1153
|
-
`CargoRack_IncreasedCapacity` grade 5 has no components upstream
|
|
1154
|
-
|
|
1154
|
+
`CargoRack_IncreasedCapacity` grade 5 has no components upstream. That absence does
|
|
1155
|
+
not establish a zero-cost crafting route: the id describes the two fixed Expanded
|
|
1156
|
+
Cargo Rack community-goal articles in `pre-engineered.jsonc`, so it remains in the
|
|
1157
|
+
mechanics catalogue for their modifier block but is absent from
|
|
1158
|
+
`blueprint-costs.jsonc`.
|
|
1155
1159
|
- **Operations pre-engineered blueprints — from the in-game / Inara blueprint registry**
|
|
1156
1160
|
(not in coriolis at the acquired commit): the Merc-Coin weapon rewards and the
|
|
1157
1161
|
general/core/optional recipes (the **Operations keys**, e.g. `FuelScoop_Efficiency`,
|
|
@@ -1346,7 +1350,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1346
1350
|
- **Availability is a property of the module, not of the blueprint.** A Pulse Laser and a
|
|
1347
1351
|
Rail Gun both take the Efficient blueprint but offer different experimental effects, so
|
|
1348
1352
|
"which experimentals go with blueprint X" has no single answer. Modules are therefore
|
|
1349
|
-
grouped (
|
|
1353
|
+
grouped (48 groups covering 1005 ordinary engineering menus) and each group lists the
|
|
1350
1354
|
`blueprints` and `experimentals` it offers.
|
|
1351
1355
|
- **Source:** EDSY `eddb.js`, whose module-group tables carry each group's `blueprints`
|
|
1352
1356
|
and `expeffects` lists and which modules belong to each group, and whose module records
|
|
@@ -1355,14 +1359,14 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1355
1359
|
`modifications/modules.json`, which carries the same per-group lists keyed by the
|
|
1356
1360
|
journal `BlueprintName`s this catalogue joins on.
|
|
1357
1361
|
- **Coverage: every retained group EDSY's `mtype` table gives a `blueprints:` key.** After
|
|
1358
|
-
the
|
|
1362
|
+
the corrections below, that is 48 groups over 1005
|
|
1359
1363
|
modules, including
|
|
1360
1364
|
bulkheads (the 241 ship armour records), life
|
|
1361
|
-
support, sensors, the Detailed Surface Scanner,
|
|
1365
|
+
support, sensors, the Detailed Surface Scanner, refineries, AFMUs, fuel
|
|
1362
1366
|
scoops, FSD interdictors and boosters, Guardian module and shield reinforcement, the
|
|
1363
1367
|
four engineerable limpet controllers, chaff, heat sink and caustic sink launchers,
|
|
1364
|
-
point defence, ECMs, the KWS/manifest/wake scanners, the Guardian
|
|
1365
|
-
weapons
|
|
1368
|
+
point defence, ECMs, the KWS/manifest/wake scanners, and the Guardian
|
|
1369
|
+
Gauss/Plasma/Shard weapons.
|
|
1366
1370
|
- **A group is one menu, so `noblueprints` splits a family in two.** EDSY denies
|
|
1367
1371
|
blueprints per module as well as per group (`edsy.js` `setBlueprintID` refuses a
|
|
1368
1372
|
denied id; `'*'` means the module is not modifiable at all), and for three families
|
|
@@ -1381,16 +1385,16 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1381
1385
|
Anti-Guardian recipe on a non-Guardian module and EDSY denies it. `powerPlants`,
|
|
1382
1386
|
`powerDistributors` and `hullReinforcements` therefore hold ordinary modules only,
|
|
1383
1387
|
and the 25 Guardian ones sit in the three groups above.
|
|
1384
|
-
- **14 modules are absent because upstream denies them
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
+
- **14 modules are absent from the registry-derived result because upstream denies them
|
|
1389
|
+
every blueprint:** eight AX multi-cannons, five of the seven mining tools, and the Mk II
|
|
1390
|
+
Plasma Shock Accelerator. The two gimballed AX multi-cannons are removed by the in-game
|
|
1391
|
+
correction below, while `plasmaAccelerators` retains 4 of its 5 modules. The other two mining tools
|
|
1388
1392
|
are the manually corrected Mining Laser and Abrasion Blaster below, so all seven lack
|
|
1389
1393
|
an ordinary menu and the empty `miningToolsLasers` group is not retained.
|
|
1390
1394
|
The ten plain Module Reinforcement Packages are denied their family's only recipe
|
|
1391
1395
|
and are absent too, which leaves `moduleReinforcements` holding the ten Guardian
|
|
1392
1396
|
packages.
|
|
1393
|
-
- **The
|
|
1397
|
+
- **The 194 modules absent have no ordinary engineering menu.** For 171 this comes from
|
|
1394
1398
|
the pinned registries. Whole families first, both registries
|
|
1395
1399
|
agreeing: fuel tanks, passenger cabins, the repair/recon/research/decontamination and
|
|
1396
1400
|
multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
|
|
@@ -1398,11 +1402,12 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1398
1402
|
vehicle hangars, the docking computers and Supercruise Assist, the module stabilisers,
|
|
1399
1403
|
the planetary approach suites, the cargo hatch and
|
|
1400
1404
|
the AX utility modules (Xeno Scanners, Shutdown Field Neutralisers), followed by the
|
|
1401
|
-
individually denied modules described above. The other
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1405
|
+
individually denied modules described above. The other 23 are the five weapons, fixed
|
|
1406
|
+
Mining Laser, Abrasion Blaster and 16 cargo racks corrected from the registry-derived
|
|
1407
|
+
result below.
|
|
1408
|
+
They and the size-5 class-2 Module Reinforcement Package within the registry-derived
|
|
1409
|
+
171 have no stock menu, but qualifying Mercenary articles remain upgradeable through
|
|
1410
|
+
their bespoke recipes.
|
|
1406
1411
|
- **EDSY's `_X_` prefix means "not applicable" and is honoured**, not stripped: the
|
|
1407
1412
|
Detailed Surface Scanner's group lists only `iss_er` (`Sensor_Expanded`), because its
|
|
1408
1413
|
three other entries are `_X_`-marked. The `Decorative_*` entries on the remote-release
|
|
@@ -1428,27 +1433,25 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1428
1433
|
the nine further groups it carries a list for —
|
|
1429
1434
|
20 in all, every one an exact match. Chaff, heat sink, point defence and ECMs keep the
|
|
1430
1435
|
generic `Misc_*` ids: there coriolis agrees with EDSY.
|
|
1431
|
-
- **
|
|
1432
|
-
them at all: the
|
|
1436
|
+
- **Nine retained groups rest on EDSY alone**, because coriolis carries no blueprint list for
|
|
1437
|
+
them at all: the Guardian-only groups (`guardianPowerPlants`,
|
|
1433
1438
|
`guardianPowerDistributors`, `guardianHullReinforcements`, `moduleReinforcements`,
|
|
1434
|
-
`shieldReinforcements`, `fsdBoosters`, `guardianGauss`, `guardianPlasma
|
|
1435
|
-
`guardianShard`)
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
objects — but it means the second registry corroborates 40 of the 52 groups, not
|
|
1439
|
+
`shieldReinforcements`, `fsdBoosters`, `guardianGauss`, `guardianPlasma` and
|
|
1440
|
+
`guardianShard`). That is coriolis being
|
|
1441
|
+
silent rather than contradicting — its Guardian groups are empty objects — but it
|
|
1442
|
+
means the second registry corroborates 39 of the 48 groups, not
|
|
1439
1443
|
all of them. The Guardian-weapon menus are independently settled by the in-game
|
|
1440
1444
|
observations below: stock weapons take Anti-Guardian Zone Resistance alone, while
|
|
1441
1445
|
the pre-engineered articles are final.
|
|
1442
1446
|
- **The multi-cannon Overcharged is the one place a group follows coriolis over EDSY.**
|
|
1443
1447
|
EDSY has a single Overcharged for every weapon; coriolis splits it, and `multiCannons`
|
|
1444
|
-
lists coriolis's `MC_Overcharged`.
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
"Four Operations recipes are listed by a menu" below.
|
|
1448
|
+
lists coriolis's `MC_Overcharged`. See "Multi-cannon Overcharged: one journal id, two
|
|
1449
|
+
recipes" below for the evidence and for what the split costs.
|
|
1450
|
+
- **The groups name 85 of the 107 blueprints.** Of the other 22, 21 are Operations keys
|
|
1451
|
+
of modules sold already engineered rather than offered in a menu; the last is the
|
|
1452
|
+
fixed Expanded Cargo Rack reward identity. Four Operations keys _are_ named by a
|
|
1453
|
+
group, because they are recipes a player applies — see "Four Operations recipes are
|
|
1454
|
+
listed by a menu" below.
|
|
1452
1455
|
- **14 modules are bound by the family rule, not by a source row.** EDSY has no live
|
|
1453
1456
|
entry for `Int_Hyperdrive_Size8_Class{1..5}` or `Int_ShieldGenerator_Size1_Class4`
|
|
1454
1457
|
(both present but commented out, and both naming their `mtype` — `cfsd` and `isg`),
|
|
@@ -1486,8 +1489,33 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1486
1489
|
correction by dropping both module mappings, the now-empty `miningToolsLasers` group,
|
|
1487
1490
|
both projected `kind` fields in `modules-hardpoint.jsonc`, and the Abrasion Blaster's
|
|
1488
1491
|
now-unreachable experimental exclusion.
|
|
1489
|
-
- **
|
|
1490
|
-
|
|
1492
|
+
- **Expanded Cargo Rack is a fixed reward identity, not an ordinary cargo-rack recipe.**
|
|
1493
|
+
EDSY and coriolis expose `CargoRack_IncreasedCapacity` as the grade-5 identity carried
|
|
1494
|
+
by the size-5 and size-6 community-goal articles catalogued in `pre-engineered.jsonc`.
|
|
1495
|
+
Direct in-game menu confirmation recorded 2026-08-18 UTC establishes that none of the
|
|
1496
|
+
16 stock cargo-rack identities — ordinary, corrosion-resistant, or Mk II — has an
|
|
1497
|
+
ordinary engineering menu; there is no immutable revision for an in-game observation.
|
|
1498
|
+
The fixed articles keep their sourced modifier blocks and remain identifiable without
|
|
1499
|
+
granting the same state to a stock rack. A re-derivation must drop the `cargoRacks`
|
|
1500
|
+
group, all 16 module mappings, and the corresponding projected `kind` fields in
|
|
1501
|
+
`modules-internal.jsonc`.
|
|
1502
|
+
- **The Enzyme Missile Rack and AX weapons have no ordinary engineering menu.** Direct
|
|
1503
|
+
in-game confirmation recorded 2026-08-18 UTC establishes that the Enzyme Missile Rack,
|
|
1504
|
+
both plain fixed AX Missile Racks and both gimballed Enhanced AX Multi-Cannons cannot
|
|
1505
|
+
receive ordinary engineering; there is no immutable revision for an in-game observation.
|
|
1506
|
+
The Enzyme Missile Rack bought from a Mercenary contact at grade 1 remains upgradeable
|
|
1507
|
+
through grades 2–5 of its bespoke `EnzymeMissileRack_HighYield` recipe. Its separately
|
|
1508
|
+
catalogued grade-5 High Capacity community-goal article is final. The Enhanced AX
|
|
1509
|
+
Multi-Cannons and AX Missile Racks in `pre-engineered.jsonc` are fixed tech-broker
|
|
1510
|
+
variants and cannot be engineered further. All five fixed articles carry
|
|
1511
|
+
`engineeringLocked: true`; the multi-cannons retain Frontier's journal identity
|
|
1512
|
+
`Weapon_Overcharged`, not the ordinary multi-cannon menu key `MC_Overcharged`. A
|
|
1513
|
+
re-derivation must drop the
|
|
1514
|
+
`experimentalWeapons`, `antiXenoMissileRacks` and `antiXenoMultiCannons` groups, their
|
|
1515
|
+
five module mappings and the corresponding projected `kind` fields in
|
|
1516
|
+
`modules-hardpoint.jsonc`.
|
|
1517
|
+
- **An empty experimental menu is still distinct from no menu.** 27 of the 48 groups offer
|
|
1518
|
+
no experimental at all, so 368 of the 1005 grouped modules have an empty experimental
|
|
1491
1519
|
list while retaining blueprints.
|
|
1492
1520
|
- **Key form:** the Anti-Guardian blueprint is listed under `GuardianModule_Sturdy`, the id
|
|
1493
1521
|
a Loadout writes and the one EDSY uses — the same and only spelling `blueprints.jsonc`
|
|
@@ -1519,8 +1547,8 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1519
1547
|
`guardianPowerDistributors` and `guardianHullReinforcements`) therefore carry no
|
|
1520
1548
|
experimental effects in the catalogue at all. Blueprints are unaffected on every
|
|
1521
1549
|
module.
|
|
1522
|
-
- **Multi-cannon Overcharged uses a distinct stored key.** The `multiCannons`
|
|
1523
|
-
`
|
|
1550
|
+
- **Multi-cannon Overcharged uses a distinct stored key.** The `multiCannons` menu lists
|
|
1551
|
+
`MC_Overcharged`; other weapon menus list
|
|
1524
1552
|
`Weapon_Overcharged`. Coriolis `modifications/modules.json` assigns the first key to
|
|
1525
1553
|
multi-cannons and the second to six other weapon groups, while
|
|
1526
1554
|
`modifications/blueprints.json` gives both the journal fdname
|
|
@@ -1529,8 +1557,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1529
1557
|
`modifications/blueprints.json` was acquired 2026-08-07 UTC and has SHA-256
|
|
1530
1558
|
`cba5a11fc7728e0d1da63fcbbc8d9dfedf9fbc51c99692ee187c7bf0293b3fa1`.
|
|
1531
1559
|
- EDSY uses one `wpn_oc` recipe and includes the clip reduction on every listed
|
|
1532
|
-
multi-cannon group.
|
|
1533
|
-
EDSY's group coverage with coriolis's key for the clip-bearing recipe.
|
|
1560
|
+
multi-cannon group.
|
|
1534
1561
|
- Frontier journal captures independently show `Weapon_Overcharged` without an
|
|
1535
1562
|
`AmmoClipSize` modifier on a large gimballed cannon
|
|
1536
1563
|
(`journal-federation-corvette.jsonc`), a medium fixed fragment cannon
|
|
@@ -1539,8 +1566,6 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1539
1566
|
modifier legs reproduce the published recipe values. EDEngineer's
|
|
1540
1567
|
`blueprints.json` likewise assigns the clip reduction to multi-cannon types and not
|
|
1541
1568
|
to cannon, fragment-cannon or plasma-accelerator types.
|
|
1542
|
-
- The two Merc-Coin AX multi-cannon rows in `pre-engineered.jsonc` use
|
|
1543
|
-
`MC_Overcharged`, matching the menu binding and the clip-bearing recipe.
|
|
1544
1569
|
- **An ordinary recipe on a Guardian weapon identifies a final purchase, not an engineer
|
|
1545
1570
|
roll.** The three Guardian weapon groups list **only** Anti-Guardian Zone Resistance,
|
|
1546
1571
|
exactly as the six Guardian _module_ groups do. `Weapon_RapidFire` on `guardianGauss`,
|
|
@@ -1664,8 +1689,9 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1664
1689
|
and several rows are annotated as having been obtainable both ways — the six SCO "V1"
|
|
1665
1690
|
drives most obviously. `acquisition` records the tag; it is not a claim that no other
|
|
1666
1691
|
route ever existed.
|
|
1667
|
-
- **`engineeringLocked: true` marks
|
|
1668
|
-
|
|
1692
|
+
- **`engineeringLocked: true` marks 12 final weapon rows:** the seven pre-engineered
|
|
1693
|
+
Guardian weapons and the five fixed Enzyme/AX articles. Their evidence is recorded once
|
|
1694
|
+
under Engineering options.
|
|
1669
1695
|
- **A reward variant is not reproducible by engineering the same blueprint.** Alongside
|
|
1670
1696
|
its blueprint and effect, each reward carries hand-set modifier overrides no blueprint
|
|
1671
1697
|
grants — that is what makes it a reward rather than a shortcut. The `blueprint` /
|
package/README.md
CHANGED
|
@@ -48,7 +48,8 @@ The package has six feature areas:
|
|
|
48
48
|
- `astro`: procedural names, id64 addresses, regions, nebulae and permit locks;
|
|
49
49
|
- `ships`: ships, modules, SLEF loadouts, engineering and build metrics;
|
|
50
50
|
- `equipment`: Odyssey suits, handheld weapons, grade upgrades and modifications;
|
|
51
|
-
- `i18n`: sparse localized
|
|
51
|
+
- `i18n`: sparse localized catalogue names, descriptions, slot labels and structured
|
|
52
|
+
diagnostic messages;
|
|
52
53
|
- `materials`: ship engineering materials and Odyssey micro resources;
|
|
53
54
|
- `commodities`: standard and rare market goods.
|
|
54
55
|
|
|
@@ -66,6 +67,29 @@ assets/ships/<symbol>/schematic-bottom.svg
|
|
|
66
67
|
package files rather than JavaScript subpath exports, so applications can copy them from
|
|
67
68
|
the installed package into their own public or bundled asset directory.
|
|
68
69
|
|
|
70
|
+
The two schematics expose a stable annotation contract for hull-anatomy interfaces:
|
|
71
|
+
|
|
72
|
+
- Each annotated feature is a `<g>` group carrying a `data-feature` category. The
|
|
73
|
+
current categories are `canopy`, `cargo_hatch`, `engine`, `fighter_bay`, `hardpoint`,
|
|
74
|
+
`heat_vent`, `landing_gear`, `thruster`, and `utility_mount`.
|
|
75
|
+
- A weapon mount has `data-feature="hardpoint"`; a utility mount has
|
|
76
|
+
`data-feature="utility_mount"`. Both carry `data-journal-slot`, whose value is the
|
|
77
|
+
exact journal-compatible slot key returned by `enumerateSlots`. Other feature
|
|
78
|
+
categories do not carry a journal slot key.
|
|
79
|
+
- Every hardpoint and utility slot in the hull catalogue occurs on at least one of the
|
|
80
|
+
two schematics. A slot occurs at most once per side, but the same slot may occur once
|
|
81
|
+
on both sides. Treat those as two views of one game slot, not two mounts.
|
|
82
|
+
- Drawing order, element IDs, `data-model-socket`, coordinates, colours, and other SVG
|
|
83
|
+
details are presentation data, not stable identities. IDs repeat between asset files,
|
|
84
|
+
so scope each schematic when inlining more than one. Select interactive geometry by
|
|
85
|
+
`data-feature` and `data-journal-slot` only.
|
|
86
|
+
|
|
87
|
+
The schematic documents are safe to embed inline as supplied: they contain only static
|
|
88
|
+
`svg`, `g`, `path`, and `circle` elements; no scripts, styles, event-handler attributes,
|
|
89
|
+
foreign or media elements, links, external references, or CSS `url()` values. This
|
|
90
|
+
content guarantee applies to the unmodified package files; applications remain
|
|
91
|
+
responsible for any transformations or user-supplied replacements.
|
|
92
|
+
|
|
69
93
|
## Examples
|
|
70
94
|
|
|
71
95
|
```ts
|
|
@@ -126,15 +150,33 @@ do not bundle them. English names are complete; other locales return `null` wher
|
|
|
126
150
|
pinned sources carry no translation instead of silently substituting English:
|
|
127
151
|
|
|
128
152
|
```ts
|
|
129
|
-
import {
|
|
153
|
+
import {
|
|
154
|
+
getBlueprintName,
|
|
155
|
+
getEngineeringGroupName,
|
|
156
|
+
getMaterialName,
|
|
157
|
+
getMicroResourceName,
|
|
158
|
+
getModuleName,
|
|
159
|
+
getShipName,
|
|
160
|
+
} from '@elite-dangerous-almanac/core/i18n';
|
|
130
161
|
|
|
131
162
|
getModuleName('Int_Hyperdrive_Size6_Class5', 'de-DE'); // -> "Frameshiftantrieb"
|
|
132
163
|
getBlueprintName('FSD_LongRange', 'fr-FR'); // -> "Portée FSD améliorée"
|
|
164
|
+
getMaterialName('GridResistors', 'de'); // -> "Gitterwiderstände"
|
|
165
|
+
getMicroResourceName('graphene', 'fr'); // -> "Graphène"
|
|
166
|
+
getShipName('empire_trader', 'fr'); // -> "Imperial Clipper"
|
|
167
|
+
getEngineeringGroupName('frameShiftDrives', 'de'); // -> null
|
|
133
168
|
```
|
|
134
169
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
170
|
+
The functions return an explicit source value verbatim, so a source-backed spelling may
|
|
171
|
+
happen to equal English; the library itself never supplies an English fallback.
|
|
172
|
+
Unqualified `zh` selects the source's Simplified Chinese (`zh-CN`) names. Explicitly
|
|
173
|
+
different Chinese scripts or regions such as `zh-TW` do not fall back to Simplified
|
|
174
|
+
Chinese and return `null` unless a matching source is added.
|
|
175
|
+
|
|
176
|
+
The same contract covers ship manufacturers, pre-engineered variant names, engineering
|
|
177
|
+
group names, experimental-effect descriptions, loadout-slot and restriction labels, and
|
|
178
|
+
structured loadout, calculation, SLEF and edit messages. A family whose accepted source
|
|
179
|
+
currently supplies only English returns `null` for every non-English locale.
|
|
138
180
|
|
|
139
181
|
Registry lookups ignore case and surrounding whitespace. Material, commodity and
|
|
140
182
|
module lookups search their complete registry by default and accept an optional
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -33,7 +33,7 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
33
33
|
boost and rotation through the thruster-mass and ENG-pip curves; shield strength and its
|
|
34
34
|
mass curve; shield collapse delay, regeneration and SYS-capacitor recovery timing; armour
|
|
35
35
|
hit points; resistance stacking with its diminishing returns; weapon DPS / capacitor
|
|
36
|
-
draw / heat; and WEP-pip recharge
|
|
36
|
+
draw / heat; SYS- and WEP-pip recharge; and weapons-capacitor endurance. It credits the
|
|
37
37
|
original Frontier-forum research the formulas come from.
|
|
38
38
|
- **The heat model** — the equilibrium heat level a thermal load settles at, how heat
|
|
39
39
|
moves towards it over time, and the multiplier a drained weapons capacitor puts on a
|
|
@@ -49,9 +49,10 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
49
49
|
the game displays. Both
|
|
50
50
|
describe Frontier's game and fall under the same Frontier notice as every other stat
|
|
51
51
|
here; what differs is how they were arrived at, not who owns them.
|
|
52
|
-
- **The jump-range and fuel algorithm**, **per-axis ENG-pip handling**,
|
|
53
|
-
ammunition rounding** rule and the **build metrics
|
|
54
|
-
ported as fact from, EDSY (credited under Data below).
|
|
52
|
+
- **The jump-range and fuel algorithm**, **per-axis ENG-pip handling**, **ENG-capacitor
|
|
53
|
+
pip-scaled recharge**, the **engineered ammunition rounding** rule and the **build metrics
|
|
54
|
+
above** are cross-checked against, or ported as fact from, EDSY (credited under Data below).
|
|
55
|
+
The jump-range model derives from
|
|
55
56
|
Frontier's "mass effect on hyperspace range" description; Coriolis carries the same maths
|
|
56
57
|
for the metrics, and a clip round-up that omits EDSY's burst step, where EDSY is followed.
|
|
57
58
|
- **Galactic codex region lookup** — resolving a region from galactic coordinates or from a
|
|
@@ -80,7 +81,7 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
80
81
|
engineering menus, per-ship module-count limits and fitted stabiliser increases, the
|
|
81
82
|
baseline per-hull maximum heat dissipation, the
|
|
82
83
|
Lynx Highliner's hull/slot figures and zero-pip minimum pitch, the journal slot names,
|
|
83
|
-
localized module, blueprint
|
|
84
|
+
localized module, blueprint, experimental-effect and engineering option-group names, and the
|
|
84
85
|
attribute-to-journal-Label mapping. The values are Elite Dangerous game data — see the
|
|
85
86
|
Frontier notice below. Heat dissipation is the one entry the game never shows a player:
|
|
86
87
|
it is community measurement of Frontier's game, described under Algorithms above, and
|
|
@@ -91,7 +92,7 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
91
92
|
- **[Inara](https://inara.cz/)** — the blueprint and outfitting registries behind the
|
|
92
93
|
Operations pre-engineered blueprints and shop rows, the ship pages used to corroborate
|
|
93
94
|
hull layouts, and the component pages that grade the Thargoid caustic / Titan materials
|
|
94
|
-
absent from FDevIDs.
|
|
95
|
+
absent from FDevIDs and classify Power Megaship Data as an Odyssey data resource.
|
|
95
96
|
- **[EliteDangerousRegionMap](https://github.com/klightspeed/EliteDangerousRegionMap)** by
|
|
96
97
|
**Ben Peddell** ([klightspeed](https://github.com/klightspeed)), **MIT** — the 42
|
|
97
98
|
galactic codex regions, their ids and their lookup geometry. Original region-boundary
|
|
@@ -117,8 +118,9 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
117
118
|
**Jixxed**, **MIT** — supplies the personal suit and handheld-weapon identities, stats,
|
|
118
119
|
journal symbols, grade-upgrade recipes and engineer-applied modification recipes. A
|
|
119
120
|
CAPI response in its test resources also corroborates the six bundle-granted Vessel
|
|
120
|
-
Hangar variants.
|
|
121
|
-
|
|
121
|
+
Hangar variants. Its language tables supply localized engineering-material and Odyssey
|
|
122
|
+
micro-resource display names. The values and response are factual Elite Dangerous game
|
|
123
|
+
data. Its MIT notice is reproduced below.
|
|
122
124
|
- **[msarilar/EDEngineer](https://github.com/msarilar/EDEngineer)**, **MIT** for its code
|
|
123
125
|
— its `blueprints.json` corroborates which weapons the Overcharged recipe gives a clip
|
|
124
126
|
penalty to. The values are game data.
|
|
@@ -191,8 +193,8 @@ and
|
|
|
191
193
|
[`data/commodities/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/commodities/SOURCES.md),
|
|
192
194
|
with the rules those files follow in
|
|
193
195
|
[`data/SNAPSHOTS.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/SNAPSHOTS.md).
|
|
194
|
-
|
|
195
|
-
|
|
196
|
+
The npm package includes matching copies under `PROVENANCE/` (without the `data/`
|
|
197
|
+
prefix); the links above are absolute so they resolve from inside the package too.
|
|
196
198
|
|
|
197
199
|
If you add or change data, port an algorithm, or add a dependency that warrants credit,
|
|
198
200
|
add it here and record the provenance where the data lives.
|
|
@@ -201,8 +203,8 @@ add it here and record the provenance where the data lives.
|
|
|
201
203
|
|
|
202
204
|
## Odyssey Materials Helper license
|
|
203
205
|
|
|
204
|
-
The personal-equipment data
|
|
205
|
-
is reproduced as required:
|
|
206
|
+
The personal-equipment data and localized material and micro-resource name tables are
|
|
207
|
+
derived from Odyssey Materials Helper, whose MIT notice is reproduced as required:
|
|
206
208
|
|
|
207
209
|
```
|
|
208
210
|
Copyright (c) 2026 Jixxed
|