@heroiclands/package-build 25.1.2 → 25.1.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @heroiclands/package-build
2
2
 
3
+ ## 25.1.3
4
+
5
+ **Spelling checks**
6
+
7
+ - A language written in a script made only of glyph codes no longer fails the spelling check on its roman words and names.
8
+ - English names a language uses, such as bynames, go under `data.names.en`, are never checked against the language's encoding, and a name pattern reaches them as `{en.epithet}`.
9
+
3
10
  ## 25.1.2
4
11
 
5
12
  **Build speed**
@@ -125,6 +125,17 @@ abstract roots are excluded. Bound-element edge hyphens mark joining positions.
125
125
  These are bare Roman checks, so a native writing cannot bypass spelling rules.
126
126
  Different case and multiword names retain their authored spelling.
127
127
 
128
+ A **codes-only** encoding accepts no letter: a script written entirely as
129
+ glyph codes, such as `⟦ONE⟧`, with no letter in its `accepts` or mappings. The
130
+ language's Roman words and names are not checked against it, since none of
131
+ them is written in it. Its own native writings are checked as any other
132
+ encoding's are: a code the font does not draw, or a second writing for one
133
+ encoding and face, is an error at the writing. A language holding both kinds of
134
+ encoding has its Roman forms checked against the lettered one only.
135
+
136
+ English names under a language's `data.names.en` are not encoded and are not
137
+ checked against any encoding.
138
+
128
139
  Every encoding inherits the shared standard's fifteen Roman punctuation
129
140
  mappings, verse and name controls, and literal boundaries. `‼` marks an
130
141
  imperative and `!` an exclamation. An explicit mapping can give a standard
@@ -4808,6 +4808,12 @@ language:
4808
4808
  every given list together where that gender has none. `{given.<gender>}`
4809
4809
  draws from that gender's list whatever the person's gender, as a patronymic
4810
4810
  draws a father's name.
4811
+ - `en` holds English names, in groups of lists. A group is named by letters,
4812
+ digits and underscores, beginning with a letter, and a pattern reaches it by
4813
+ its dotted path: `{en.epithet}` draws from `en.epithet` as `{given.male}`
4814
+ draws from the male given names. The English names are never encoded in the
4815
+ tongue's script and are never checked against its spelling. A bare `{en}`
4816
+ names no list.
4811
4817
  - Every other key is a list of names that the placeholder of the same name
4812
4818
  draws from. A list name is letters, digits and underscores, beginning with a
4813
4819
  letter.
@@ -4842,6 +4848,25 @@ person's gender: _Agosi ez Zileti_ fits a woman and not a man, and _Aguri ez
4842
4848
  Lut_ fits nobody, because _Lut_ is not in `place`. Names compare in Unicode
4843
4849
  NFC, so a precomposed and a decomposed accent are the same letter.
4844
4850
 
4851
+ A tongue whose people carry English bynames states them under `en`:
4852
+
4853
+ ```yaml
4854
+ shortcode: northlng
4855
+ name: { full: Northern Language }
4856
+ type: skill
4857
+ subType: language
4858
+ data:
4859
+ names:
4860
+ pattern: "{given} the {en.epithet}"
4861
+ given:
4862
+ female: [Astrid, Gróa]
4863
+ male: [Ulf, Thornak]
4864
+ en:
4865
+ epithet: [cruel, cutthroat, merciless]
4866
+ ```
4867
+
4868
+ A person drawn from these lists is called something like _Ulf the cutthroat_.
4869
+
4845
4870
  A tongue whose people carry a parent's name, with an ending that depends on
4846
4871
  their own gender, keys its patterns by gender:
4847
4872
 
@@ -4869,7 +4894,8 @@ pattern.
4869
4894
  `package-build lint` checks the lists, with a finding at the pattern, list,
4870
4895
  name or key at fault: a pattern with an unmatched brace or no placeholder, a
4871
4896
  placeholder that names no list, a `{given.<gender>}` whose gender has no given
4872
- list, a dotted placeholder on a list other than `given`, a list that no pattern
4897
+ list, a dotted placeholder on a list other than `given` or `en`, an
4898
+ `{en.<list>}` naming no list of `en`, a bare `{en}`, a list that no pattern
4873
4899
  names, a list name a placeholder cannot spell, an empty list of patterns or of
4874
4900
  names, an empty name, a missing `pattern` or `given`, a missing `female` or
4875
4901
  `male` list, and a `pattern` or `given` key that is not a gender.
@@ -5928,10 +5954,12 @@ SoHL sets `system.quantity` to `1` for each compendium item.
5928
5954
  | `templatePriority` | `number` | Template priority, _null_ = not a template |
5929
5955
  | `masteryLevel` | `number` | HM3 mastery level |
5930
5956
  | `parentSkill` | `Address` | Parent skill this skill specializes |
5931
- | `names` | `{ pattern, given, <name>... }` | `language` only: how its speakers are named, for `package-build npc new` — see [name lists](#name-lists) |
5957
+ | `names` | `{ pattern, given, en?, <name>... }` | `language` only: how its speakers are named, for `package-build npc new` — see [name lists](#name-lists) |
5932
5958
  | `names.pattern` | `string`, `string[]` or map of `gender` words to either, required | Placeholders such as `{given}`, `{given.male}` and `{clan}`, each naming a list, with literal text around them; a list states several forms, a map each gender's forms |
5933
5959
  | `names.given` | map of `gender` words to lists of names, required | Given names by gender; `female` and `male` are required |
5934
5960
  | `names.given.<name>` | `string[]` | The given names of one gender |
5961
+ | `names.en` | map of list names to lists of English names | English names, never encoded in the tongue's script; a pattern draws from one list as `{en.<list>}` |
5962
+ | `names.en.<name>` | `string[]` | A list of English names, such as `epithet` |
5935
5963
  | `names.<name>` | `string[]` | A list the placeholder of the same name draws from |
5936
5964
  | `family` | `Address` | `language` only: the parent language, naming a skill note with `subType: language`; this language reads the parent's words as its own — see [a language's words](#a-languages-words) |
5937
5965
  | `abbreviation` | `string` | `language` only: the tag a dictionary prints for it, as `Prov.`; its full name where unstated — see [dictionaries and glossaries](#dictionaries-and-glossaries) |