@elite-dangerous-almanac/core 0.1.0-beta.9 → 0.1.2
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 +71 -12
- package/PROVENANCE/ships/SOURCES.md +74 -48
- package/README.md +34 -2
- package/THIRD_PARTY_NOTICES.md +3 -3
- 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-KQDJTDLV.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-DAQ3PJ4R.js +1 -0
- package/dist/chunk-DAQ3PJ4R.js.map +1 -0
- package/dist/{chunk-BTPV5CIF.js → chunk-DI5RXSJR.js} +1 -1
- package/dist/{chunk-YDBRGW4G.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-QF3NYGUJ.js → chunk-EKWLAHRG.js} +1 -1
- package/dist/chunk-EU42PAV4.js +1 -0
- package/dist/{chunk-32PVERNH.js.map → chunk-EU42PAV4.js.map} +1 -1
- package/dist/{chunk-Q22LXT53.js → chunk-FEER4ERG.js} +1 -1
- package/dist/{chunk-G3AMKCOE.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-H3HMVGEY.js +1 -0
- package/dist/chunk-H3HMVGEY.js.map +1 -0
- package/dist/{chunk-UXZJMZEU.js → chunk-HRVIHQ4A.js} +1 -1
- 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-4AE22CHV.js → chunk-M5IBENCW.js} +1 -1
- 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-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-53ERRGPM.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-MNXWK7PA.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-TLA6LHLN.js +1 -0
- package/dist/{chunk-V4C6FIE2.js.map → chunk-TLA6LHLN.js.map} +1 -1
- 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-VSNS7Y3M.js +1 -0
- package/dist/chunk-VSNS7Y3M.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-IJRKEODR.js → chunk-WNGQ3IAM.js} +1 -1
- package/dist/{chunk-VARPO47V.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/{chunk-QMQHIZGS.js → chunk-YU5GND2Q.js} +1 -1
- package/dist/chunk-YU5GND2Q.js.map +1 -0
- 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 +27 -0
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.js +1 -1
- 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-all.js +1 -1
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.js +1 -1
- 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/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/heat.d.ts +22 -0
- package/dist/ships/heat.js +1 -1
- package/dist/ships/index.d.ts +6 -5
- 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 +1793 -19
- 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 +26 -2
- package/dist/chunk-32PVERNH.js +0 -1
- package/dist/chunk-4AE22CHV.js.map +0 -1
- package/dist/chunk-4WC5NHBJ.js +0 -1
- package/dist/chunk-4WC5NHBJ.js.map +0 -1
- package/dist/chunk-53ERRGPM.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-BYBT5XSW.js +0 -1
- package/dist/chunk-BYBT5XSW.js.map +0 -1
- package/dist/chunk-KLIYDSYF.js +0 -1
- package/dist/chunk-KLIYDSYF.js.map +0 -1
- package/dist/chunk-MPZGCTRG.js.map +0 -1
- package/dist/chunk-NSSWYRHN.js +0 -1
- package/dist/chunk-QMQHIZGS.js.map +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-V4C6FIE2.js +0 -1
- package/dist/ship-loadout-BsfKbvKe.d.ts +0 -1455
- /package/dist/{chunk-KQDJTDLV.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-BTPV5CIF.js.map → chunk-DI5RXSJR.js.map} +0 -0
- /package/dist/{chunk-YDBRGW4G.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-QF3NYGUJ.js.map → chunk-EKWLAHRG.js.map} +0 -0
- /package/dist/{chunk-Q22LXT53.js.map → chunk-FEER4ERG.js.map} +0 -0
- /package/dist/{chunk-G3AMKCOE.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-UXZJMZEU.js.map → chunk-HRVIHQ4A.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-MNXWK7PA.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-VARPO47V.js.map → chunk-XN6Q7LWU.js.map} +0 -0
- /package/dist/{chunk-KMFUCORC.js.map → chunk-Y6UZWNP4.js.map} +0 -0
|
@@ -107,31 +107,90 @@ translation.
|
|
|
107
107
|
same Brazilian Portuguese game text. `pt-BR` lookups resolve these values through the
|
|
108
108
|
regional-to-language fallback.
|
|
109
109
|
|
|
110
|
-
##
|
|
110
|
+
## `ship-names.jsonc`
|
|
111
111
|
|
|
112
|
-
- **Acquired:** 2026-08-
|
|
112
|
+
- **Acquired:** 2026-08-18 UTC.
|
|
113
113
|
- **Odyssey Materials Helper revision:** commit
|
|
114
114
|
`23343c453938e724f317c56e9eb7db0dbfa71f78`;
|
|
115
115
|
`application/src/main/resources/locale/ships/ships.csv` has SHA-256
|
|
116
116
|
`6785f7cea00f36ca0a853091fd88f8ed5481a60f55c269643bff1ab0c3d6993d`.
|
|
117
117
|
- **EDSY revision:** commit `e446fbe6e4597dea7ab0bd3105b9a36642388040`;
|
|
118
118
|
database version `424009901`, last-modified marker `20260810`.
|
|
119
|
-
- **
|
|
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
|
|
120
121
|
Helper's `ships.name.*` key after removing punctuation and folding case. EDSY's
|
|
121
122
|
`eddb.js` `ship.fdname` supplies the second join, with explicit `ship-<id>` language
|
|
122
123
|
entries filling locales absent from the CSV. The resulting source-backed coverage is
|
|
123
|
-
|
|
124
|
+
48 ships in Spanish, 44 in French, 38 in Portuguese, 48 in Russian, 48 in
|
|
125
|
+
Simplified Chinese and 47 in Georgian;
|
|
124
126
|
no accepted source carries a German ship-name table.
|
|
125
|
-
- **Standing conclusion:**
|
|
126
|
-
to the canonical English ship
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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.
|
|
130
188
|
- **Manual corrections:** none.
|
|
131
189
|
|
|
132
190
|
## Known gaps
|
|
133
191
|
|
|
134
192
|
Localized coverage follows the accepted sources and is not complete for every catalogue or
|
|
135
|
-
locale.
|
|
136
|
-
|
|
137
|
-
|
|
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).
|
|
@@ -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,8 +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
|
|
52
|
-
|
|
51
|
+
- `i18n`: sparse localized catalogue names, descriptions, slot labels and structured
|
|
52
|
+
diagnostic messages;
|
|
53
53
|
- `materials`: ship engineering materials and Odyssey micro resources;
|
|
54
54
|
- `commodities`: standard and rare market goods.
|
|
55
55
|
|
|
@@ -67,6 +67,29 @@ assets/ships/<symbol>/schematic-bottom.svg
|
|
|
67
67
|
package files rather than JavaScript subpath exports, so applications can copy them from
|
|
68
68
|
the installed package into their own public or bundled asset directory.
|
|
69
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
|
+
|
|
70
93
|
## Examples
|
|
71
94
|
|
|
72
95
|
```ts
|
|
@@ -129,15 +152,19 @@ pinned sources carry no translation instead of silently substituting English:
|
|
|
129
152
|
```ts
|
|
130
153
|
import {
|
|
131
154
|
getBlueprintName,
|
|
155
|
+
getEngineeringGroupName,
|
|
132
156
|
getMaterialName,
|
|
133
157
|
getMicroResourceName,
|
|
134
158
|
getModuleName,
|
|
159
|
+
getShipName,
|
|
135
160
|
} from '@elite-dangerous-almanac/core/i18n';
|
|
136
161
|
|
|
137
162
|
getModuleName('Int_Hyperdrive_Size6_Class5', 'de-DE'); // -> "Frameshiftantrieb"
|
|
138
163
|
getBlueprintName('FSD_LongRange', 'fr-FR'); // -> "Portée FSD améliorée"
|
|
139
164
|
getMaterialName('GridResistors', 'de'); // -> "Gitterwiderstände"
|
|
140
165
|
getMicroResourceName('graphene', 'fr'); // -> "Graphène"
|
|
166
|
+
getShipName('empire_trader', 'fr'); // -> "Imperial Clipper"
|
|
167
|
+
getEngineeringGroupName('frameShiftDrives', 'de'); // -> null
|
|
141
168
|
```
|
|
142
169
|
|
|
143
170
|
The functions return an explicit source value verbatim, so a source-backed spelling may
|
|
@@ -146,6 +173,11 @@ Unqualified `zh` selects the source's Simplified Chinese (`zh-CN`) names. Explic
|
|
|
146
173
|
different Chinese scripts or regions such as `zh-TW` do not fall back to Simplified
|
|
147
174
|
Chinese and return `null` unless a matching source is added.
|
|
148
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.
|
|
180
|
+
|
|
149
181
|
Registry lookups ignore case and surrounding whitespace. Material, commodity and
|
|
150
182
|
module lookups search their complete registry by default and accept an optional
|
|
151
183
|
catalogue to narrow the results. Nebula queries require an explicit catalogue so the
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -81,7 +81,7 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
81
81
|
engineering menus, per-ship module-count limits and fitted stabiliser increases, the
|
|
82
82
|
baseline per-hull maximum heat dissipation, the
|
|
83
83
|
Lynx Highliner's hull/slot figures and zero-pip minimum pitch, the journal slot names,
|
|
84
|
-
localized module, blueprint
|
|
84
|
+
localized module, blueprint, experimental-effect and engineering option-group names, and the
|
|
85
85
|
attribute-to-journal-Label mapping. The values are Elite Dangerous game data — see the
|
|
86
86
|
Frontier notice below. Heat dissipation is the one entry the game never shows a player:
|
|
87
87
|
it is community measurement of Frontier's game, described under Algorithms above, and
|
|
@@ -193,8 +193,8 @@ and
|
|
|
193
193
|
[`data/commodities/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/commodities/SOURCES.md),
|
|
194
194
|
with the rules those files follow in
|
|
195
195
|
[`data/SNAPSHOTS.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/SNAPSHOTS.md).
|
|
196
|
-
|
|
197
|
-
|
|
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.
|
|
198
198
|
|
|
199
199
|
If you add or change data, port an algorithm, or add a dependency that warrants credit,
|
|
200
200
|
add it here and record the provenance where the data lives.
|