@heroiclands/package-build 23.8.0 → 23.9.0
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 +27 -0
- package/bin/content-commands.mjs +12 -4
- package/docs/api.md +328 -28
- package/docs/authoring/first-note.md +1 -1
- package/docs/authoring/links-and-markup.md +140 -56
- package/docs/commands.md +19 -10
- package/docs/content-format.md +2 -2
- package/docs/diagnostics.md +1 -1
- package/docs/guides/packs.md +2 -1
- package/docs/guides/reference-pages.md +86 -63
- package/docs/reference/format-details.md +269 -123
- package/docs/reference/note-types.md +184 -170
- package/engine/anchors.mjs +7 -20
- package/engine/compile-corpus.mjs +3 -2
- package/engine/content-format.yaml +1 -0
- package/engine/content-index.mjs +412 -11
- package/engine/content-links.mjs +43 -15
- package/engine/content-tables.mjs +8 -4
- package/engine/culture-reach.mjs +61 -34
- package/engine/data-keys.mjs +3 -1
- package/engine/dictionary-layout.mjs +151 -19
- package/engine/dictionary-rows.mjs +129 -79
- package/engine/foundry-entries.mjs +21 -3
- package/engine/glossary-entries.mjs +11 -11
- package/engine/heading-attributes.mjs +21 -28
- package/engine/helpers.mjs +12 -6
- package/engine/journals.mjs +4 -1
- package/engine/language-data.mjs +53 -0
- package/engine/language-terms.mjs +86 -0
- package/engine/language-words.mjs +2 -2
- package/engine/lexical-sections.mjs +247 -0
- package/engine/note-claims.mjs +2 -0
- package/engine/note-state.mjs +9 -3
- package/engine/note-vocabulary.mjs +7 -6
- package/engine/pdf-build.mjs +9 -9
- package/engine/site-build.mjs +16 -2
- package/engine/sql-tables.mjs +262 -43
- package/engine/stub-lint.mjs +6 -2
- package/engine/web-wikilinks.mjs +8 -6
- package/engine/word-rows.mjs +20 -12
- package/engine/word-terms.mjs +15 -6
- package/package.json +1 -1
- package/types/engine/content-index.d.mts +65 -1
- package/types/engine/content-tables.d.mts +2 -1
- package/types/engine/culture-reach.d.mts +22 -2
- package/types/engine/data-keys.d.mts +7 -0
- package/types/engine/dictionary-layout.d.mts +35 -4
- package/types/engine/dictionary-rows.d.mts +9 -0
- package/types/engine/foundry-entries.d.mts +3 -1
- package/types/engine/heading-attributes.d.mts +2 -2
- package/types/engine/helpers.d.mts +4 -1
- package/types/engine/language-terms.d.mts +7 -0
- package/types/engine/lexical-sections.d.mts +95 -0
- package/types/engine/note-state.d.mts +2 -1
- package/types/engine/site-build.d.mts +4 -1
- package/types/engine/sql-tables.d.mts +33 -3
- package/types/engine/word-rows.d.mts +9 -7
|
@@ -121,86 +121,86 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
121
121
|
|
|
122
122
|
**Subtypes:** `guild`, `order`, `polity`, `faithtradition`, `arcanetradition`, `spirittradition`, `lineage`, `venture`, `criminal`, `governmental`, `fellowship`.
|
|
123
123
|
|
|
124
|
-
| Field | Shape | Meaning
|
|
125
|
-
| ------------------------- | ------------------------------------------------------------------------------- |
|
|
126
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
127
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
128
|
-
| `data.events` | list of event entries | What happened to or at this subject — each entry one dated, attributed event: a founding, a war, a fall, or an occasion that recurs.
|
|
129
|
-
| `data.demonym` | string | What one member is called — a Vylarian.
|
|
130
|
-
| `data.epithet` | string | The by-name it is known by — a god's, an order's, a company's.
|
|
131
|
-
| `data.symbol` | string | Its emblem in words: a feather atop a golden scale, a chisel carving a star.
|
|
132
|
-
| `data.governance.model` | string | How the affiliation is governed, where it is.
|
|
133
|
-
| `data.governance.summary` | string | A sentence on how the governance actually works.
|
|
134
|
-
| `data.governance.ranks` | list of `{ level, title, description, lore? }` | The ladder of standings the body confers: level 0 for those it excludes and level 1 for its members, both required, and higher rungs only where the body has them.
|
|
135
|
-
| `data.governance.offices` | a map of named offices | Named offices, each with a description and optional dated holders.
|
|
136
|
-
| `data.seat` | an Address | Where the affiliation's authority sits.
|
|
137
|
-
| `data.population` | number | How many people it counts.
|
|
138
|
-
| `data.economy` | list of Addresses | What its economic life runs on — currencies, banking bodies, goods.
|
|
139
|
-
| `data.lore` | list of Addresses | Lore concerning it — the peoples it draws on, the god a faith venerates, its law, its calendar.
|
|
140
|
-
| `data.parents` | list of Addresses | Affiliations it is subordinate to.
|
|
141
|
-
| `data.culture` | an Address | The people this affiliation belongs to, as a culture lore note.
|
|
142
|
-
| `data.language` | an Address | The trade, temple or order tongue the affiliation keeps, as a language skill note.
|
|
143
|
-
| `data.glossary` | list of `{ name, name_sort?, common?, definition?, pronunciation?, language? }` | Its own glossary
|
|
144
|
-
| `data.relations` | a map keyed by Address | Standing with other affiliations — aligned, unaligned, rival, nemesis.
|
|
124
|
+
| Field | Shape | Meaning |
|
|
125
|
+
| ------------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
126
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
127
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
128
|
+
| `data.events` | list of event entries | What happened to or at this subject — each entry one dated, attributed event: a founding, a war, a fall, or an occasion that recurs. |
|
|
129
|
+
| `data.demonym` | string | What one member is called — a Vylarian. |
|
|
130
|
+
| `data.epithet` | string | The by-name it is known by — a god's, an order's, a company's. |
|
|
131
|
+
| `data.symbol` | string | Its emblem in words: a feather atop a golden scale, a chisel carving a star. |
|
|
132
|
+
| `data.governance.model` | string | How the affiliation is governed, where it is. |
|
|
133
|
+
| `data.governance.summary` | string | A sentence on how the governance actually works. |
|
|
134
|
+
| `data.governance.ranks` | list of `{ level, title, description, lore? }` | The ladder of standings the body confers: level 0 for those it excludes and level 1 for its members, both required, and higher rungs only where the body has them. |
|
|
135
|
+
| `data.governance.offices` | a map of named offices | Named offices, each with a description and optional dated holders. |
|
|
136
|
+
| `data.seat` | an Address | Where the affiliation's authority sits. |
|
|
137
|
+
| `data.population` | number | How many people it counts. |
|
|
138
|
+
| `data.economy` | list of Addresses | What its economic life runs on — currencies, banking bodies, goods. |
|
|
139
|
+
| `data.lore` | list of Addresses | Lore concerning it — the peoples it draws on, the god a faith venerates, its law, its calendar. |
|
|
140
|
+
| `data.parents` | list of Addresses | Affiliations it is subordinate to. |
|
|
141
|
+
| `data.culture` | an Address | The people this affiliation belongs to, as a culture lore note. |
|
|
142
|
+
| `data.language` | an Address | The trade, temple or order tongue the affiliation keeps, as a language skill note. A glossary entry that states no `language` is in it. The affiliation chooses its own common vocabulary and context meanings. |
|
|
143
|
+
| `data.glossary` | list of `{ name, name_sort?, common?, definition?, pronunciation?, language? }` | Its own glossary entries: common vocabulary, dictionary words with a contextual meaning, and phrases, compounds or terms of art. A named dictionary word supplies its senses and class unless `definition` supplies the sense. Common marks belong to this owner. Every entry resolves to a language. Empty when unstated. See [glossary terms](format-details.md#glossary-terms). |
|
|
144
|
+
| `data.relations` | a map keyed by Address | Standing with other affiliations — aligned, unaligned, rival, nemesis. |
|
|
145
145
|
|
|
146
146
|
**Inner keys** — a key a field's value does not declare is an error at its own line and column.
|
|
147
147
|
|
|
148
|
-
| Key | Shape | Required | Meaning
|
|
149
|
-
| ---------------------------------------------------- | ------------------------------------------------------------------------------------- | -------- |
|
|
150
|
-
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits.
|
|
151
|
-
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened.
|
|
152
|
-
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches.
|
|
153
|
-
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs.
|
|
154
|
-
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped.
|
|
155
|
-
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once.
|
|
156
|
-
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`.
|
|
157
|
-
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period.
|
|
158
|
-
| `data.events[].summary` | a string | yes | What happened, stated plainly.
|
|
159
|
-
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports.
|
|
160
|
-
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it.
|
|
161
|
-
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world.
|
|
162
|
-
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue.
|
|
163
|
-
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used.
|
|
164
|
-
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt.
|
|
165
|
-
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place.
|
|
166
|
-
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why.
|
|
167
|
-
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt.
|
|
168
|
-
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice.
|
|
169
|
-
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event.
|
|
170
|
-
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead.
|
|
171
|
-
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what.
|
|
172
|
-
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation.
|
|
173
|
-
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event.
|
|
174
|
-
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from.
|
|
175
|
-
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event.
|
|
176
|
-
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it.
|
|
177
|
-
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two.
|
|
178
|
-
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it.
|
|
179
|
-
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account.
|
|
180
|
-
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms.
|
|
181
|
-
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`.
|
|
182
|
-
| `data.events[].accounts[].withholds` | a string | no | What they decline to say.
|
|
183
|
-
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled.
|
|
184
|
-
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves.
|
|
185
|
-
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning.
|
|
186
|
-
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`.
|
|
187
|
-
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it.
|
|
188
|
-
| `data.governance.ranks[].level` | a whole number — the rung's position on this body's own ladder | yes | The rung's position on the ladder — `0` the excluded, `1` the ordinary member; a member's `rank` names it.
|
|
189
|
-
| `data.governance.ranks[].title` | what the standing is called | yes | What the standing is called.
|
|
190
|
-
| `data.governance.ranks[].description` | what the standing is | yes | What the standing is.
|
|
191
|
-
| `data.governance.ranks[].lore` | a lore Address | no | Lore saying more about the standing than a description holds.
|
|
192
|
-
| `data.governance.offices.<name>.description` | a string | yes | What the office is.
|
|
193
|
-
| `data.governance.offices.<name>.holders` | a list of `{ being, start?, end?, contested? }` | yes | Who has held it, each with the dates of the term.
|
|
194
|
-
| `data.governance.offices.<name>.holders[].being` | a being Address | yes | Who held the office.
|
|
195
|
-
| `data.governance.offices.<name>.holders[].start` | a date | no | When the term began; unstated, it began before anything recorded.
|
|
196
|
-
| `data.governance.offices.<name>.holders[].end` | a date | no | When the term ended; unstated, the being holds the office now.
|
|
197
|
-
| `data.governance.offices.<name>.holders[].contested` | `true` or `false` | no | The term may overlap another holder's.
|
|
198
|
-
| `data.glossary[].name` | a string | yes | The headword.
|
|
199
|
-
| `data.glossary[].name_sort` | a string | no | Its sort key; the name when unstated.
|
|
200
|
-
| `data.glossary[].common` | `true` or `false` | no |
|
|
201
|
-
| `data.glossary[].definition` | a string | no | The sense text.
|
|
202
|
-
| `data.glossary[].pronunciation` | a respelling such as `sol-MEH-reh` | no | A respelling, held to the same rule as a word's.
|
|
203
|
-
| `data.glossary[].language` | a language skill Address | no | The language the term is in. Unstated, it is the affiliation's language, its parents', or its culture's, or the culture's own.
|
|
148
|
+
| Key | Shape | Required | Meaning |
|
|
149
|
+
| ---------------------------------------------------- | ------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
150
|
+
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits. |
|
|
151
|
+
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened. |
|
|
152
|
+
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches. |
|
|
153
|
+
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs. |
|
|
154
|
+
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped. |
|
|
155
|
+
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once. |
|
|
156
|
+
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`. |
|
|
157
|
+
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period. |
|
|
158
|
+
| `data.events[].summary` | a string | yes | What happened, stated plainly. |
|
|
159
|
+
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports. |
|
|
160
|
+
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it. |
|
|
161
|
+
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world. |
|
|
162
|
+
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue. |
|
|
163
|
+
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used. |
|
|
164
|
+
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt. |
|
|
165
|
+
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place. |
|
|
166
|
+
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why. |
|
|
167
|
+
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt. |
|
|
168
|
+
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice. |
|
|
169
|
+
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event. |
|
|
170
|
+
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead. |
|
|
171
|
+
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what. |
|
|
172
|
+
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation. |
|
|
173
|
+
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event. |
|
|
174
|
+
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from. |
|
|
175
|
+
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event. |
|
|
176
|
+
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it. |
|
|
177
|
+
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two. |
|
|
178
|
+
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it. |
|
|
179
|
+
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account. |
|
|
180
|
+
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms. |
|
|
181
|
+
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`. |
|
|
182
|
+
| `data.events[].accounts[].withholds` | a string | no | What they decline to say. |
|
|
183
|
+
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled. |
|
|
184
|
+
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves. |
|
|
185
|
+
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning. |
|
|
186
|
+
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`. |
|
|
187
|
+
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it. |
|
|
188
|
+
| `data.governance.ranks[].level` | a whole number — the rung's position on this body's own ladder | yes | The rung's position on the ladder — `0` the excluded, `1` the ordinary member; a member's `rank` names it. |
|
|
189
|
+
| `data.governance.ranks[].title` | what the standing is called | yes | What the standing is called. |
|
|
190
|
+
| `data.governance.ranks[].description` | what the standing is | yes | What the standing is. |
|
|
191
|
+
| `data.governance.ranks[].lore` | a lore Address | no | Lore saying more about the standing than a description holds. |
|
|
192
|
+
| `data.governance.offices.<name>.description` | a string | yes | What the office is. |
|
|
193
|
+
| `data.governance.offices.<name>.holders` | a list of `{ being, start?, end?, contested? }` | yes | Who has held it, each with the dates of the term. |
|
|
194
|
+
| `data.governance.offices.<name>.holders[].being` | a being Address | yes | Who held the office. |
|
|
195
|
+
| `data.governance.offices.<name>.holders[].start` | a date | no | When the term began; unstated, it began before anything recorded. |
|
|
196
|
+
| `data.governance.offices.<name>.holders[].end` | a date | no | When the term ended; unstated, the being holds the office now. |
|
|
197
|
+
| `data.governance.offices.<name>.holders[].contested` | `true` or `false` | no | The term may overlap another holder's. |
|
|
198
|
+
| `data.glossary[].name` | a string | yes | The headword. |
|
|
199
|
+
| `data.glossary[].name_sort` | a string | no | Its sort key; the dictionary word's sort key, or the name, when unstated. |
|
|
200
|
+
| `data.glossary[].common` | `true` or `false` | no | Core vocabulary for this glossary's owner; `false` when unstated. |
|
|
201
|
+
| `data.glossary[].definition` | a string | no | The sense text, overriding the word's or governance sources' senses. Unstated, a named dictionary word supplies all its senses and class; a named rank or office supplies its descriptions. |
|
|
202
|
+
| `data.glossary[].pronunciation` | a respelling such as `sol-MEH-reh` | no | A respelling, held to the same rule as a word's; the dictionary word's when unstated. |
|
|
203
|
+
| `data.glossary[].language` | a language skill Address | no | The language the term is in. Unstated, it is the affiliation's language, its parents', or its culture's, or the culture's own. |
|
|
204
204
|
|
|
205
205
|
**System mappings**
|
|
206
206
|
|
|
@@ -465,8 +465,9 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
465
465
|
| `data.abbreviation` | a string, such as `Prov.` | The tag a dictionary prints for the language, beside an entry's class and in an etymology, as `Prov.`; the language's full name where unstated. A language skill note only. See [a language's words](format-details.md#a-languages-words). |
|
|
466
466
|
| `data.classModifiers` | list of word class modifiers | The class modifiers the language uses, from the master word classes. A word's class may carry only these. Empty when unstated. A language skill note only. |
|
|
467
467
|
| `data.fields` | list of `{ name, holds }` | The fields the language's words are grouped under. A language skill note only. |
|
|
468
|
-
| `data.words` | list of `{ form, class, field, gloss, … }` | The language
|
|
468
|
+
| `data.words` | list of `{ form, class, field, gloss, … }` | The words this language states, one map each, in authored order; its automatic dictionary sorts them alphabetically. A language skill note only. See [a language's words](format-details.md#a-languages-words). |
|
|
469
469
|
| `data.affixes` | list of `{ form, gloss, attaches?, examples? }` | The affixes a word's `built` pieces may name, each with its gloss. A language skill note only. |
|
|
470
|
+
| `data.grammar` | a map — `{ plural?, verbs? }` | Optional noun plurals and one verb pattern for dictionary presentation. Only the shape of supplied keys is checked; no word must follow or state a rule. A language skill note only. |
|
|
470
471
|
| `data.tongues` | list of `{ tag, meaning, language? }` | The tags a register row's `tongue` may name, each with what it means. A language skill note only. |
|
|
471
472
|
| `data.register` | list of `{ name, tongue?, kind?, built?, gloss?, why? }` | Every name the setting gives in the language's reach, with its tongue and pieces; the notes carrying each name are derived. A language skill note only. |
|
|
472
473
|
| `data.retired` | list of `{ form, instead?, why }` | The forms the setting does not write, and why. A language skill note only. |
|
|
@@ -493,7 +494,8 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
493
494
|
| `data.words[].variants` | a list of forms | no | The word's other forms, such as a long form beside a short one; a marked use of one cites the word. |
|
|
494
495
|
| `data.words[].name_sort` | a string | no | The sort key; the form when unstated. |
|
|
495
496
|
| `data.words[].class` | a word class, base first, such as `n I f` | yes | A class from the master word classes: a base, then the modifiers the language declares in `classModifiers`. |
|
|
496
|
-
| `data.words[].
|
|
497
|
+
| `data.words[].plural` | a string | no | The noun's explicit plural, where it differs from the language's optional plural rule. A dictionary uses this form before the rule; no rule agreement is checked. |
|
|
498
|
+
| `data.words[].field` | one of the language's `fields` names | yes | The field tag beside the dictionary entry, named in the language's `fields`. |
|
|
497
499
|
| `data.words[].gloss` | a string, or a list of senses | yes | The meaning, in brief; a list states one sense per entry, which a dictionary numbers. |
|
|
498
500
|
| `data.words[].source` | a map — `{ kind, language?, form? }` | no | Where the word comes from. |
|
|
499
501
|
| `data.words[].source.kind` | one of inherited, borrowed, kept, worn, coined, substrate, island | yes | How the word came into the tongue. |
|
|
@@ -518,6 +520,18 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
518
520
|
| `data.affixes[].examples` | a list of strings | no | The names the affix is read from. |
|
|
519
521
|
| `data.affixes[].barredAfter` | a list of sounds | no | The sounds a stem may not close on to take the affix. |
|
|
520
522
|
| `data.affixes[].tones` | a tone pattern, such as `L` | no | The tone pattern the affix carries, written as a word's `tones` is. |
|
|
523
|
+
| `data.grammar.plural` | list of `{ ending, becomes }` | no | Default noun plurals, replacing the first matching literal ending in authored order. A word's explicit plural wins; no word is checked against this rule. |
|
|
524
|
+
| `data.grammar.plural[].ending` | a literal ending string, which may be empty | yes | The bare suffix replaced by this rule; empty matches every noun. |
|
|
525
|
+
| `data.grammar.plural[].becomes` | a literal ending string, which may be empty | yes | The bare replacement; empty removes the matching suffix. |
|
|
526
|
+
| `data.grammar.verbs` | a map — `{ invariant: true }` or `{ persons: { I, you, heShe, we, youAll, they } }` | no | One optional regular present pattern, printed once at the dictionary head. |
|
|
527
|
+
| `data.grammar.verbs.invariant` | true, as the alternative to persons | no | True where verbs keep the citation form for every person; excludes `persons`. |
|
|
528
|
+
| `data.grammar.verbs.persons` | a map — `{ I, you, heShe, we, youAll, they }` of ending strings | no | All six present endings, each added to the citation form; excludes `invariant`. |
|
|
529
|
+
| `data.grammar.verbs.persons.I` | an ending string, empty for unchanged | yes | The ending added to the citation form for I. |
|
|
530
|
+
| `data.grammar.verbs.persons.you` | an ending string, empty for unchanged | yes | The ending added to the citation form for you. |
|
|
531
|
+
| `data.grammar.verbs.persons.heShe` | an ending string, empty for unchanged | yes | The ending added to the citation form for he/she. |
|
|
532
|
+
| `data.grammar.verbs.persons.we` | an ending string, empty for unchanged | yes | The ending added to the citation form for we. |
|
|
533
|
+
| `data.grammar.verbs.persons.youAll` | an ending string, empty for unchanged | yes | The ending added to the citation form for you all. |
|
|
534
|
+
| `data.grammar.verbs.persons.they` | an ending string, empty for unchanged | yes | The ending added to the citation form for they. |
|
|
521
535
|
| `data.tongues[].tag` | a tag such as `dunhari`, or `exonym:<tongue>` | yes | The tag a register row's `tongue` names: lowercase letters and digits, or a tag closing on `:<tongue>`, which declares one tag per tongue named after the colon. |
|
|
522
536
|
| `data.tongues[].meaning` | a string | yes | What a name of this tongue is. |
|
|
523
537
|
| `data.tongues[].language` | a language skill Address | no | The language note the tag names, where it is one. |
|
|
@@ -732,100 +746,100 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
732
746
|
|
|
733
747
|
Lore records in-world knowledge. A `culture` describes a people; a `custom` describes how they practice a rite, observance, or usage. A `material` describes a physical constituent and its qualities, which may vary by region. See the [lore subtype definitions](format-details.md#type-lore) for the complete vocabulary.
|
|
734
748
|
|
|
735
|
-
| Field | Shape | Meaning
|
|
736
|
-
| ------------------------ | ----------------------------------------------------------------------------------- |
|
|
737
|
-
| `data.epoch` | a canonical `<year>.<day>` | Canonical day when calendar year 1, day 1 begins — `1.1`.
|
|
738
|
-
| `data.months` | list of `{ name, abbreviation?, days }` | The months this calendar keeps, in order — position in the list is position in the year, and the day counts sum to the world's year.
|
|
739
|
-
| `data.weekdays` | list of `{ name, abbreviation? }` | The days of the week this calendar names, in order. A calendar with no week writes none.
|
|
740
|
-
| `data.seasons` | list of `{ name, abbreviation?, start }` | The seasons this calendar marks, starting on numbered days of the year.
|
|
741
|
-
| `data.namedDays` | list of `{ name, abbreviation?, day }` | Names assigned to particular days of the year.
|
|
742
|
-
| `data.eras` | list of `{ shortcode, name, marker?, abbreviation?, proclaimedBy?, start, label? }` | The year-counts kept in this calendar. A marker names one era and uses these months.
|
|
743
|
-
| `data.formats` | map of named Calendaria format strings | Named patterns for reading and writing this calendar's dates.
|
|
744
|
-
| `data.parents` | list of Addresses | Culture only: parent culture lore notes, searched in listed depth-first order for omitted language and appearance profile fields.
|
|
745
|
-
| `data.culture` | an Address | The people this lore belongs to — for a work of literature, the people whose work it is — as a culture lore note. A culture note is its own culture, and states the field only as itself.
|
|
746
|
-
| `data.form` | string | The kind of work in its people's own terms — an epic, a saga, a praise-song, an elegy. Free text.
|
|
747
|
-
| `data.subjects` | list of Addresses | The beings, places, gods and other notes the work concerns, and each event it concerns, named as `place-ironfells#sack`.
|
|
748
|
-
| `data.language` | an Address | The tongue the note is in, as a language skill note: the tongue a work is composed in, a culture's people speak, or an affiliation keeps as its trade, temple or order tongue. `package-build npc new` draws a culture's names from its language's `data.names`. A `literature` or `culture` lore note, or an affiliation, only.
|
|
749
|
-
| `data.events` | list of event entries | What happened to or at this subject — each entry one dated, attributed event: a founding, a war, a fall, or an occasion that recurs.
|
|
750
|
-
| `data.appearanceProfile` | an appearance profile | What this culture's people look like, for `package-build npc new`: `frame`, `eye_color`, `hair_color`, `skin_color` and `complexion` each map words of that field's vocabulary to positive weights, and `height` maps a gender to a `{min, max}` range, `female` and `male` required. A culture note only. See [appearance profiles](format-details.md#appearance-profiles).
|
|
751
|
-
| `data.glossary` | list of `{ name, name_sort?, common?, definition?, pronunciation?, language? }` | `culture` only: Its own glossary
|
|
749
|
+
| Field | Shape | Meaning |
|
|
750
|
+
| ------------------------ | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
751
|
+
| `data.epoch` | a canonical `<year>.<day>` | Canonical day when calendar year 1, day 1 begins — `1.1`. |
|
|
752
|
+
| `data.months` | list of `{ name, abbreviation?, days }` | The months this calendar keeps, in order — position in the list is position in the year, and the day counts sum to the world's year. |
|
|
753
|
+
| `data.weekdays` | list of `{ name, abbreviation? }` | The days of the week this calendar names, in order. A calendar with no week writes none. |
|
|
754
|
+
| `data.seasons` | list of `{ name, abbreviation?, start }` | The seasons this calendar marks, starting on numbered days of the year. |
|
|
755
|
+
| `data.namedDays` | list of `{ name, abbreviation?, day }` | Names assigned to particular days of the year. |
|
|
756
|
+
| `data.eras` | list of `{ shortcode, name, marker?, abbreviation?, proclaimedBy?, start, label? }` | The year-counts kept in this calendar. A marker names one era and uses these months. |
|
|
757
|
+
| `data.formats` | map of named Calendaria format strings | Named patterns for reading and writing this calendar's dates. |
|
|
758
|
+
| `data.parents` | list of Addresses | Culture only: parent culture lore notes, searched in listed depth-first order for omitted language and appearance profile fields. |
|
|
759
|
+
| `data.culture` | an Address | The people this lore belongs to — for a work of literature, the people whose work it is — as a culture lore note. A culture note is its own culture, and states the field only as itself. |
|
|
760
|
+
| `data.form` | string | The kind of work in its people's own terms — an epic, a saga, a praise-song, an elegy. Free text. |
|
|
761
|
+
| `data.subjects` | list of Addresses | The beings, places, gods and other notes the work concerns, and each event it concerns, named as `place-ironfells#sack`. |
|
|
762
|
+
| `data.language` | an Address | The tongue the note is in, as a language skill note: the tongue a work is composed in, a culture's people speak, or an affiliation keeps as its trade, temple or order tongue. `package-build npc new` draws a culture's names from its language's `data.names`. A `literature` or `culture` lore note, or an affiliation, only. |
|
|
763
|
+
| `data.events` | list of event entries | What happened to or at this subject — each entry one dated, attributed event: a founding, a war, a fall, or an occasion that recurs. |
|
|
764
|
+
| `data.appearanceProfile` | an appearance profile | What this culture's people look like, for `package-build npc new`: `frame`, `eye_color`, `hair_color`, `skin_color` and `complexion` each map words of that field's vocabulary to positive weights, and `height` maps a gender to a `{min, max}` range, `female` and `male` required. A culture note only. See [appearance profiles](format-details.md#appearance-profiles). |
|
|
765
|
+
| `data.glossary` | list of `{ name, name_sort?, common?, definition?, pronunciation?, language? }` | `culture` only: Its own glossary entries: common vocabulary, dictionary words with a contextual meaning, and phrases, compounds or terms of art. A named dictionary word supplies its senses and class unless `definition` supplies the sense. Common marks belong to this owner. Every entry resolves to a language. Empty when unstated. See [glossary terms](format-details.md#glossary-terms). |
|
|
752
766
|
|
|
753
767
|
**Inner keys** — a key a field's value does not declare is an error at its own line and column.
|
|
754
768
|
|
|
755
|
-
| Key | Shape | Required | Meaning
|
|
756
|
-
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | -------- |
|
|
757
|
-
| `data.months[].name` | a string | yes | What it is called.
|
|
758
|
-
| `data.months[].abbreviation` | a string | no | Its short form, for a compact date.
|
|
759
|
-
| `data.months[].days` | a whole number of days | yes | How many days the month holds.
|
|
760
|
-
| `data.weekdays[].name` | a string | yes | What it is called.
|
|
761
|
-
| `data.weekdays[].abbreviation` | a string | no | Its short form, for a compact date.
|
|
762
|
-
| `data.seasons[].name` | a string | yes | What it is called.
|
|
763
|
-
| `data.seasons[].abbreviation` | a string | no | Its short form, for a compact date.
|
|
764
|
-
| `data.seasons[].start` | a one-based day of the year, as a whole number | yes | The day of the year the season begins.
|
|
765
|
-
| `data.namedDays[].name` | a string | yes | What it is called.
|
|
766
|
-
| `data.namedDays[].abbreviation` | a string | no | Its short form, for a compact date.
|
|
767
|
-
| `data.namedDays[].day` | a one-based day of the year, as a whole number | yes | The day of the year it names.
|
|
768
|
-
| `data.eras[].shortcode` | the era's own shortcode, unique within the calendar — an era is addressed `<calendar shortcode>.<era shortcode>` | yes | The era's own segment of `<calendar>.<era>`.
|
|
769
|
-
| `data.eras[].name` | a string | yes | What it is called.
|
|
770
|
-
| `data.eras[].marker` | uppercase letters and digits, beginning with a letter | no | The marker an authored date names the era by, unique across the corpus.
|
|
771
|
-
| `data.eras[].abbreviation` | a string | no | Its short form, for a compact date.
|
|
772
|
-
| `data.eras[].proclaimedBy` | an Address | no | The body that began the reckoning.
|
|
773
|
-
| `data.eras[].start` | `null`, or the calendar year the era begins, as a whole number | yes | The calendar year the era begins; `null` for the era before year 1.
|
|
774
|
-
| `data.eras[].label` | a string, or an `{ after, before }` map | no | How a date in the era reads, around one `{date}` slot.
|
|
775
|
-
| `data.eras[].label.after` | a string with one `{date}` slot | no | How a date in the era reads.
|
|
776
|
-
| `data.eras[].label.before` | a string with one `{date}` slot | no | How a date before the era's start reads.
|
|
777
|
-
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits.
|
|
778
|
-
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened.
|
|
779
|
-
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches.
|
|
780
|
-
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs.
|
|
781
|
-
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped.
|
|
782
|
-
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once.
|
|
783
|
-
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`.
|
|
784
|
-
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period.
|
|
785
|
-
| `data.events[].summary` | a string | yes | What happened, stated plainly.
|
|
786
|
-
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports.
|
|
787
|
-
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it.
|
|
788
|
-
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world.
|
|
789
|
-
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue.
|
|
790
|
-
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used.
|
|
791
|
-
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt.
|
|
792
|
-
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place.
|
|
793
|
-
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why.
|
|
794
|
-
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt.
|
|
795
|
-
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice.
|
|
796
|
-
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event.
|
|
797
|
-
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead.
|
|
798
|
-
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what.
|
|
799
|
-
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation.
|
|
800
|
-
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event.
|
|
801
|
-
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from.
|
|
802
|
-
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event.
|
|
803
|
-
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it.
|
|
804
|
-
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two.
|
|
805
|
-
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it.
|
|
806
|
-
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account.
|
|
807
|
-
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms.
|
|
808
|
-
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`.
|
|
809
|
-
| `data.events[].accounts[].withholds` | a string | no | What they decline to say.
|
|
810
|
-
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled.
|
|
811
|
-
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves.
|
|
812
|
-
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning.
|
|
813
|
-
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`.
|
|
814
|
-
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it.
|
|
815
|
-
| `data.appearanceProfile.frame` | a map of words to weights | yes | Weighted `frame` words; a word left out is never drawn.
|
|
816
|
-
| `data.appearanceProfile.eye_color` | a map of words to weights | yes | Weighted `eye_color` words; a word left out is never drawn.
|
|
817
|
-
| `data.appearanceProfile.hair_color` | a map of words to weights | yes | Weighted `hair_color` words; a word left out is never drawn.
|
|
818
|
-
| `data.appearanceProfile.skin_color` | a map of words to weights | yes | Weighted `skin_color` words; a word left out is never drawn.
|
|
819
|
-
| `data.appearanceProfile.complexion` | a map of words to weights | yes | Weighted `complexion` words; a word left out is never drawn.
|
|
820
|
-
| `data.appearanceProfile.height` | a map of genders to height ranges | yes | Height ranges keyed by gender; a gender with no range draws from the span of every range stated.
|
|
821
|
-
| `data.appearanceProfile.height.<name>.min` | a height in metres or feet and inches | yes | The shortest height drawn.
|
|
822
|
-
| `data.appearanceProfile.height.<name>.max` | a height in metres or feet and inches | yes | The tallest height drawn.
|
|
823
|
-
| `data.glossary[].name` | a string | yes | The headword.
|
|
824
|
-
| `data.glossary[].name_sort` | a string | no | Its sort key; the name when unstated.
|
|
825
|
-
| `data.glossary[].common` | `true` or `false` | no |
|
|
826
|
-
| `data.glossary[].definition` | a string | no | The sense text.
|
|
827
|
-
| `data.glossary[].pronunciation` | a respelling such as `sol-MEH-reh` | no | A respelling, held to the same rule as a word's.
|
|
828
|
-
| `data.glossary[].language` | a language skill Address | no | The language the term is in. Unstated, it is the affiliation's language, its parents', or its culture's, or the culture's own.
|
|
769
|
+
| Key | Shape | Required | Meaning |
|
|
770
|
+
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
771
|
+
| `data.months[].name` | a string | yes | What it is called. |
|
|
772
|
+
| `data.months[].abbreviation` | a string | no | Its short form, for a compact date. |
|
|
773
|
+
| `data.months[].days` | a whole number of days | yes | How many days the month holds. |
|
|
774
|
+
| `data.weekdays[].name` | a string | yes | What it is called. |
|
|
775
|
+
| `data.weekdays[].abbreviation` | a string | no | Its short form, for a compact date. |
|
|
776
|
+
| `data.seasons[].name` | a string | yes | What it is called. |
|
|
777
|
+
| `data.seasons[].abbreviation` | a string | no | Its short form, for a compact date. |
|
|
778
|
+
| `data.seasons[].start` | a one-based day of the year, as a whole number | yes | The day of the year the season begins. |
|
|
779
|
+
| `data.namedDays[].name` | a string | yes | What it is called. |
|
|
780
|
+
| `data.namedDays[].abbreviation` | a string | no | Its short form, for a compact date. |
|
|
781
|
+
| `data.namedDays[].day` | a one-based day of the year, as a whole number | yes | The day of the year it names. |
|
|
782
|
+
| `data.eras[].shortcode` | the era's own shortcode, unique within the calendar — an era is addressed `<calendar shortcode>.<era shortcode>` | yes | The era's own segment of `<calendar>.<era>`. |
|
|
783
|
+
| `data.eras[].name` | a string | yes | What it is called. |
|
|
784
|
+
| `data.eras[].marker` | uppercase letters and digits, beginning with a letter | no | The marker an authored date names the era by, unique across the corpus. |
|
|
785
|
+
| `data.eras[].abbreviation` | a string | no | Its short form, for a compact date. |
|
|
786
|
+
| `data.eras[].proclaimedBy` | an Address | no | The body that began the reckoning. |
|
|
787
|
+
| `data.eras[].start` | `null`, or the calendar year the era begins, as a whole number | yes | The calendar year the era begins; `null` for the era before year 1. |
|
|
788
|
+
| `data.eras[].label` | a string, or an `{ after, before }` map | no | How a date in the era reads, around one `{date}` slot. |
|
|
789
|
+
| `data.eras[].label.after` | a string with one `{date}` slot | no | How a date in the era reads. |
|
|
790
|
+
| `data.eras[].label.before` | a string with one `{date}` slot | no | How a date before the era's start reads. |
|
|
791
|
+
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits. |
|
|
792
|
+
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened. |
|
|
793
|
+
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches. |
|
|
794
|
+
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs. |
|
|
795
|
+
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped. |
|
|
796
|
+
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once. |
|
|
797
|
+
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`. |
|
|
798
|
+
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period. |
|
|
799
|
+
| `data.events[].summary` | a string | yes | What happened, stated plainly. |
|
|
800
|
+
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports. |
|
|
801
|
+
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it. |
|
|
802
|
+
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world. |
|
|
803
|
+
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue. |
|
|
804
|
+
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used. |
|
|
805
|
+
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt. |
|
|
806
|
+
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place. |
|
|
807
|
+
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why. |
|
|
808
|
+
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt. |
|
|
809
|
+
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice. |
|
|
810
|
+
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event. |
|
|
811
|
+
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead. |
|
|
812
|
+
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what. |
|
|
813
|
+
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation. |
|
|
814
|
+
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event. |
|
|
815
|
+
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from. |
|
|
816
|
+
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event. |
|
|
817
|
+
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it. |
|
|
818
|
+
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two. |
|
|
819
|
+
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it. |
|
|
820
|
+
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account. |
|
|
821
|
+
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms. |
|
|
822
|
+
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`. |
|
|
823
|
+
| `data.events[].accounts[].withholds` | a string | no | What they decline to say. |
|
|
824
|
+
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled. |
|
|
825
|
+
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves. |
|
|
826
|
+
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning. |
|
|
827
|
+
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`. |
|
|
828
|
+
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it. |
|
|
829
|
+
| `data.appearanceProfile.frame` | a map of words to weights | yes | Weighted `frame` words; a word left out is never drawn. |
|
|
830
|
+
| `data.appearanceProfile.eye_color` | a map of words to weights | yes | Weighted `eye_color` words; a word left out is never drawn. |
|
|
831
|
+
| `data.appearanceProfile.hair_color` | a map of words to weights | yes | Weighted `hair_color` words; a word left out is never drawn. |
|
|
832
|
+
| `data.appearanceProfile.skin_color` | a map of words to weights | yes | Weighted `skin_color` words; a word left out is never drawn. |
|
|
833
|
+
| `data.appearanceProfile.complexion` | a map of words to weights | yes | Weighted `complexion` words; a word left out is never drawn. |
|
|
834
|
+
| `data.appearanceProfile.height` | a map of genders to height ranges | yes | Height ranges keyed by gender; a gender with no range draws from the span of every range stated. |
|
|
835
|
+
| `data.appearanceProfile.height.<name>.min` | a height in metres or feet and inches | yes | The shortest height drawn. |
|
|
836
|
+
| `data.appearanceProfile.height.<name>.max` | a height in metres or feet and inches | yes | The tallest height drawn. |
|
|
837
|
+
| `data.glossary[].name` | a string | yes | The headword. |
|
|
838
|
+
| `data.glossary[].name_sort` | a string | no | Its sort key; the dictionary word's sort key, or the name, when unstated. |
|
|
839
|
+
| `data.glossary[].common` | `true` or `false` | no | Core vocabulary for this glossary's owner; `false` when unstated. |
|
|
840
|
+
| `data.glossary[].definition` | a string | no | The sense text, overriding the word's or governance sources' senses. Unstated, a named dictionary word supplies all its senses and class; a named rank or office supplies its descriptions. |
|
|
841
|
+
| `data.glossary[].pronunciation` | a respelling such as `sol-MEH-reh` | no | A respelling, held to the same rule as a word's; the dictionary word's when unstated. |
|
|
842
|
+
| `data.glossary[].language` | a language skill Address | no | The language the term is in. Unstated, it is the affiliation's language, its parents', or its culture's, or the culture's own. |
|
|
829
843
|
|
|
830
844
|
### map
|
|
831
845
|
|