@ham2k/lib-operation-data 1.1.3 → 1.2.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/README.md CHANGED
@@ -1,3 +1,21 @@
1
1
  # lib-operation-data
2
2
 
3
3
  Basic data related to Amateur Radio operation, such as bands, modes, etc
4
+
5
+ ## License levels
6
+
7
+ `LICENSE_LEVELS` lists, per national regulator, the license levels in order — each with a `tier` (`basic`, `intermediate` or `full`) — plus the callsign series that give a level away. A level is named by its key, `"<jurisdiction>:<code>"` (`"us:G"`): `licenseLevelKey` makes one, `resolveLicenseLevel` reads one back, `licenseJurisdictionForEntity(entityPrefix)` finds a regulator by DXCC entity, and `licenseLevelForCallsign(call, entityPrefix)` guesses a level from the callsign.
8
+
9
+ What each level may transmit on lives in `bandPlans.json`, alongside the mode segments. Every level may use a band unless:
10
+
11
+ - the band's `exceptLevels` names it — it has nothing on that band;
12
+ - a segment's `exceptLevels` names it — it has nothing in that segment;
13
+ - a segment's `levels` names it — there it is limited to that segment's `superModes`.
14
+
15
+ A level's own `superModes` limit it everywhere (Japan's 4th class sends no CW). Mode rules that bind every level of a country alike are left to the mode segments, and stretches no level of a country may use are an allocation question, not a level's. `isOutsideLicensePrivileges(khz, { level, entityPrefix, ituRegion, mode })` answers for one frequency, and `modeForFrequency` ignores these segments.
16
+
17
+ ## Research
18
+
19
+ [research/license-levels/](research/license-levels/README.md) holds the research behind the license-level data: what each country calls its license levels, each level's band, mode and power privileges, legacy classes, and callsign → level inference, with sources and a confidence mark on each fact. It is not part of the published package.
20
+
21
+ `src/data/licenseLevels.json` was derived from the research's high-confidence jurisdictions and is now the data's source of truth: correct it there, and record the evidence in the research.