Compare commits

..
Author SHA1 Message Date
9eb4cf1a45 Merge pull request 'DRAFT Zyphos naming briefs (not canon)' (#1) from weksa-names/zyphos-briefs into main 2026-11-06 04:32:44 +00:00
Weksa
422dbe7e54 Zyphos briefs: revise against the Sa'ueia sound section
Oluneihe withdrawn (forbidden h; Olune is Deru's root). Ilawerum is Deru's
ila+werum, not a candidate. Ellumaiwa fails the no-doubled-letter rule.
Dozkai/Druzkai is two edits. Drop the no-phonology caveat and the spelling
state section (respell merged in Weksa #4, Zyphos #1).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 04:32:37 +00:00
Weksa
1d78742696 Add DRAFT naming briefs for Zyphos names
One brief per DRAFT name from weksa-body/zyphos-name-drafts: speaker,
addressee, register, meaning decomposition, applicable sound rules, and
reject conditions. Records the Sa'auei'a -> Sa'ueia rename state. No names
are canon.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 04:32:07 +00:00
3f6549ff8b Merge pull request 'Rust to Dust imperial language: draft design spec r0' (#2) from weksa-conlang/rtd-imperial into main 2026-11-06 03:32:09 +00:00
Weksa
d929f746bd Cut the two aesthetic_reading copies
Per ruling rtd-imperial-aesthetic-reading-to-ontology: the packet carries
neutral facts plus stance; the reading belongs to the imperial ontology.
Removes the runtime-data sketch block in rust-to-dust/language-design.md
and the rtd.aesthetic_reading extension example in interlingua-standard.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 03:32:05 +00:00
Weksa
9fb44fa23f rtd-imperial: stance is on main; record the four rulings
Drop the unmerged speaker-state wording (stance landed in PR #3; only
Speaker and Scene remain planned, cut speaker-scene) and record the four
rtd-imperial-* rulings in Section 7.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 03:31:51 +00:00
d043281a18 Merge pull request 'Sa'ueia workshop first cut: table, checker, sound proposal' (#5) from weksa/sa-ueia-workshop into main 2026-11-04 12:56:50 +00:00
Weksa
3db34fb634 Sa'ueia workshop first cut: table, checker, sound proposal
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 10:49:50 +00:00
813509f250 Merge pull request 'Respell Sa'auei'a as Sa'ueia (spelling only)' (#4) from weksa/sa-ueia-spelling into main 2026-11-04 10:48:37 +00:00
Weksa
1e79c0c9e6 Respell Sa'auei'a as Sa'ueia
Spelling only, with Deru's permission (2026-11-04 #zyphos): language-design.md (6),
README.md (2), state/map.yaml (2) as scoped. Other hits left for a ruling.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 09:41:57 +00:00
Weksa
218962fcf6 rust-to-dust: draft imperial language design spec (r0)
Speech community and status ladder, phonology, stance/restraint marking,
meaning decomposition, and the packet fields the lowerer must provide.
Evidence and invention tagged throughout.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 19:27:40 +00:00
157892a95a Merge pull request 'speaker-state onto main (stance in packet, admit-only LoweringInput) + build notes' (#3) from weksa-lowering/speaker-state-on-main into main 2026-11-03 19:27:33 +00:00
10 changed files with 1119 additions and 22 deletions

View file

@ -300,10 +300,6 @@ predications:
roles:
agent: actor
patient: target
extensions:
rtd.aesthetic_reading:
form: raw
spectacle_value: high
```
## Promotion Rule

View file

@ -20,7 +20,7 @@ register, and history.
- Weksa owns the language-project pipeline: ontology projection, grammar,
morphology, phonology, diachrony, rendering, glossing, and critique.
- A future language project owns one inhabitant language. Airawa imperial
register, pre-imperial Airawa registers, Sa'auei'a family-unit speech, ritual
register, pre-imperial Airawa registers, Sa'ueia family-unit speech, ritual
breeding-ground registers, and ecological-partner contact systems should not
collapse into one universal naming soup.
@ -40,7 +40,7 @@ surfaces:
- Airawa continent: mother-tree memory networks, archival dependency,
disconnected networks, and the Airawa Empire's biological-memetic
infrastructure.
- Sa'auei'a continent: advanced nomadic civilization, family-unit political
- Sa'ueia continent: advanced nomadic civilization, family-unit political
movement, sacred breeding-ground commons, remembered routes, and reciprocal
ecological relationships.

View file

@ -49,7 +49,7 @@ rights, witnessed warrior promise, and honorable scar evidence. See
### Provisional Airawa Phonology Notes
Airawa phonology is not finalized, but the current design pressure distinguishes
it from Sa'auei'a softness. Airawa names should feel sharper, more dorsal and
it from Sa'ueia softness. Airawa names should feel sharper, more dorsal and
coronal, and more willing to close around hard edges.
Provisional tendencies:
@ -58,9 +58,9 @@ Provisional tendencies:
- sibilant and postalveolar fricatives should carry social texture: `s`, `z`,
`sh` / `zh`;
- `r` may be trilled in some Airawa registers;
- syllables can tolerate clipped or closed shapes where Sa'auei'a forms would
- syllables can tolerate clipped or closed shapes where Sa'ueia forms would
flow longer and wetter;
- avoid making native Airawa names read like smooth Sa'auei'a route names unless
- avoid making native Airawa names read like smooth Sa'ueia route names unless
the form is explicitly a loan, exonym, or cross-continental register.
The current room consensus pushes this further for introductory speech: Airawa
@ -75,9 +75,9 @@ voiced postalveolar fricative /zh/ [ʒ]. The name is being considered for a
Zyphos Face drawn from a non-imperial Airawa archival/fungal-road tradition: an
archivist shaped by memory as kinship, not content.
## Sa'auei'a Pressures
## Sa'ueia Pressures
Sa'auei'a language work must account for:
Sa'ueia language work must account for:
- advanced nomadic civilization without permanent urban dominance
- squad-sized family units
@ -88,10 +88,46 @@ Sa'auei'a language work must account for:
- reciprocity routes and seasonal corridors
- camps, commons, and partner sites as distinct name targets
The Sa'auei'a continent should not read as empty wilderness. Its language should
The Sa'ueia continent should not read as empty wilderness. Its language should
have ways to name civilization that moves, recurs, bargains, and is remembered by
ecology.
## Sa'ueia Sound (Proposal For Deru To Cut)
Status: proposal. Deru approved the outline in #zyphos on 2026-11-04; only the
species name Sa'ueia is canon. Everything below is a working draft in
`sa-ueia/table.yaml`, each entry marked `deru` or `weksa-placeholder`, and
`sa-ueia/check.py` enforces what is mechanical.
Taken from Deru's words:
- five vowels: `a e i o u`;
- no `h`, `q`, `y`; `k` where a `q` might have been;
- short words, soft and open;
- suffixing morphology; the one suffix so far is `-um`, a verb suffix;
- identical letters merge at a morpheme join: `weru` + `um` gives `werum`,
`ila` + `werum` gives `ilawerum` (walk of knowledge);
- a vowel only where one is needed.
First roots, all Deru's: `ila` walk, `weru` know, `Olune` breeding ground
(unanalyzed).
Proposed, for Deru to accept or cut:
- the apostrophe in Sa'ueia is orthographic, and is not counted as a letter;
- "short" means at most 10 letters in a joined word, as a warning only;
- no doubled letter inside a morpheme, so a double can only arise at a join
and the merge rule removes it.
Open, not guessed:
- the consonant inventory. Only `l m n r s w` appear in Deru's words so far,
and that is attestation, not an inventory;
- whether the know root is `weru` or `wer-` (both give `werum`);
- syllable shapes, stress, and what "vowel only where needed" means once the
inventory is known (the checker does not test it);
- the phonological role of the apostrophe.
## Naming Brief Shape
A Weksa naming brief should capture at least:

View file

@ -0,0 +1,102 @@
#!/usr/bin/env python3
"""Sa'ueia workshop checker: join morphemes by table.yaml's rules, flag violations.
Reads table.yaml next to this file (or a path argument). The consonant inventory
is open, so no consonant is ever flagged; only rules in the table are enforced.
Exit status is 1 when any error is found; warnings do not fail the run.
"""
from __future__ import annotations
import sys
from dataclasses import dataclass
from pathlib import Path
import yaml
TABLE = Path(__file__).with_name("table.yaml")
PROVENANCES = {"deru", "weksa-placeholder"}
@dataclass(frozen=True)
class Finding:
severity: str # "error" | "warning"
where: str
message: str
def __str__(self) -> str:
return f"{self.severity}: {self.where}: {self.message}"
def letters(form: str) -> str:
return form.replace("'", "").lower()
def join(morphemes: list[str]) -> str:
"""Concatenate, merging one identical letter at each join."""
out = ""
for m in morphemes:
if out and m and out[-1] == m[0]:
m = m[1:]
out += m
return out
def check_form(form: str, rules: dict, where: str, *, inside_morpheme: bool = False) -> list[Finding]:
found = []
text = letters(form)
for ch in rules["forbidden_letters"]["value"]:
if ch in text:
found.append(Finding("error", where, f"{form!r} contains forbidden letter {ch!r}"))
for a, b in zip(text, text[1:]):
if a == b and (not inside_morpheme or rules["no_doubled_letters_inside_morpheme"]["value"]):
found.append(Finding("error", where, f"{form!r} has doubled {a!r}"))
limit = rules["max_word_letters"]
if not inside_morpheme and len(text) > limit["value"]:
found.append(Finding(limit["severity"], where, f"{form!r} is {len(text)} letters, over {limit['value']}"))
return found
def check_table(table: dict) -> list[Finding]:
rules = table["rules"]
found = []
for r_name, r in rules.items():
if r.get("provenance") not in PROVENANCES:
found.append(Finding("error", f"rules.{r_name}", "missing or unknown provenance"))
if table["consonants"]["inventory"] != "open":
found.append(Finding("error", "consonants", "inventory is not Deru's to guess; keep it open until given"))
forms: dict[str, str] = {}
for kind in ("roots", "suffixes"):
for entry in table[kind]:
form = entry["form"]
where = f"{kind}.{form}"
if entry.get("provenance") not in PROVENANCES:
found.append(Finding("error", where, "missing or unknown provenance"))
forms[form] = kind
found += check_form(form, rules, where, inside_morpheme=True)
for comp in table["compositions"]:
where = "compositions." + "+".join(comp["morphemes"])
if comp.get("provenance") not in PROVENANCES:
found.append(Finding("error", where, "missing or unknown provenance"))
for m in comp["morphemes"]:
if m not in forms and not any(m == f2 for f2 in (c["expected"] for c in table["compositions"])):
found.append(Finding("error", where, f"morpheme {m!r} is in no table row or earlier composition"))
got = join(comp["morphemes"])
if got != comp["expected"]:
found.append(Finding("error", where, f"joins to {got!r}, table says {comp['expected']!r}"))
found += check_form(comp["expected"], rules, where)
return found
def main(argv: list[str]) -> int:
path = Path(argv[1]) if len(argv) > 1 else TABLE
findings = check_table(yaml.safe_load(path.read_text(encoding="utf-8")))
for f in findings:
print(f)
print(f"{sum(f.severity == 'error' for f in findings)} error(s), "
f"{sum(f.severity == 'warning' for f in findings)} warning(s)")
return 1 if any(f.severity == "error" for f in findings) else 0
if __name__ == "__main__":
sys.exit(main(sys.argv))

View file

@ -0,0 +1,81 @@
# Sa'ueia workshop table, first cut.
# Source: Deru's words in #zyphos, 2026-11-04. Setting owner: Deru (the Zyphos vault).
# Every entry carries provenance:
# deru - said by Deru, or part of the sound outline Deru approved
# weksa-placeholder - Weksa's stand-in so the checker can run; Deru may cut it
# Only the species name Sa'ueia is canon. Everything else here is a working
# draft, even when its provenance is deru.
roots:
- form: ila
gloss: walk
provenance: deru
- form: weru
gloss: know
provenance: deru
note: >
Deru gave "werum" (knowledge, maybe a verb) and was asked whether -um
suffixes wer- or weru. "weru" is the reading under which the join rule
does visible work (weru + um -> werum); wer- gives the same surface form.
Open for Deru.
- form: olune
gloss: breeding ground
provenance: deru
analysis: unanalyzed # no morpheme boundaries known
- form: sa'ueia
gloss: the species name
provenance: deru
canon: true
analysis: unanalyzed
note: Apostrophe is part of the canon spelling; its phonological role is open.
suffixes:
- form: um
gloss: verb suffix
provenance: deru
rules:
vowels:
value: [a, e, i, o, u]
provenance: deru
forbidden_letters:
value: [h, q, y]
provenance: deru
note: k is used where q might have been.
join_merge_identical:
value: true
provenance: deru
note: >
When one morpheme ends in the letter the next begins with, they merge to
one letter at the join (weru + um -> werum, ila + werum -> ilawerum).
morphology_direction:
value: suffixing
provenance: deru
short_words:
provenance: deru
checked: false # no number from Deru
max_word_letters:
value: 10
provenance: weksa-placeholder
severity: warning
note: Stand-in for "short words"; apostrophes not counted. Deru sets the real bound.
no_doubled_letters_inside_morpheme:
value: true
provenance: weksa-placeholder
note: Follows from the merge rule only if doubles never occur inside a morpheme either.
vowel_only_where_needed:
provenance: deru
checked: false # not mechanically decidable without the consonant inventory
consonants:
inventory: open # Deru has not given it. The checker does not guess.
seen_in_deru_words: [l, m, n, r, s, w] # attested above, not an inventory
# Joined forms the checker must reproduce. Each: morphemes in order, expected surface.
compositions:
- morphemes: [weru, um]
expected: werum
provenance: deru # "werum" is Deru's form
- morphemes: [ila, werum]
expected: ilawerum
provenance: deru # "Ilawerum", walk of knowledge

View file

@ -0,0 +1,94 @@
import copy
import unittest
import yaml
import check
def table():
return yaml.safe_load(check.TABLE.read_text(encoding="utf-8"))
def errors(t):
return [f for f in check.check_table(t) if f.severity == "error"]
class JoinTests(unittest.TestCase):
def test_identical_letters_merge_at_join(self):
self.assertEqual(check.join(["weru", "um"]), "werum")
self.assertEqual(check.join(["ila", "werum"]), "ilawerum")
def test_merge_is_one_letter_not_all(self):
self.assertEqual(check.join(["ila", "aba"]), "ilaba")
self.assertEqual(check.join(["ila", "ala"]), "ilala")
def test_different_letters_concatenate(self):
self.assertEqual(check.join(["ila", "um"]), "ilaum")
def test_merge_applies_only_at_joins(self):
# a doubled letter inside a morpheme is not collapsed by join
self.assertEqual(check.join(["aa", "b"]), "aab")
class TableTests(unittest.TestCase):
def test_shipped_table_is_clean(self):
self.assertEqual(errors(table()), [])
def test_forbidden_letter_in_root_flagged(self):
t = table()
t["roots"].append({"form": "haru", "gloss": "x", "provenance": "weksa-placeholder"})
self.assertTrue(any("forbidden letter 'h'" in str(f) for f in errors(t)))
def test_q_and_y_flagged(self):
for ch in "qy":
t = table()
t["roots"].append({"form": f"a{ch}a", "gloss": "x", "provenance": "deru"})
self.assertTrue(any(f"forbidden letter '{ch}'" in str(f) for f in errors(t)), ch)
def test_k_allowed(self):
t = table()
t["roots"].append({"form": "kela", "gloss": "x", "provenance": "weksa-placeholder"})
self.assertEqual(errors(t), [])
def test_missing_or_unknown_provenance_flagged(self):
for bad in (None, "guess"):
t = table()
t["suffixes"][0]["provenance"] = bad
self.assertTrue(any("provenance" in str(f) for f in errors(t)), bad)
def test_unmerged_composition_flagged(self):
t = table()
t["compositions"][0]["expected"] = "weruum"
msgs = [str(f) for f in errors(t)]
self.assertTrue(any("joins to 'werum'" in m for m in msgs))
self.assertTrue(any("doubled 'u'" in m for m in msgs))
def test_doubled_letter_inside_morpheme_flagged(self):
t = table()
t["roots"].append({"form": "ilaa", "gloss": "x", "provenance": "weksa-placeholder"})
self.assertTrue(any("doubled 'a'" in str(f) for f in errors(t)))
def test_unknown_morpheme_in_composition_flagged(self):
t = table()
t["compositions"].append({"morphemes": ["ila", "zo"], "expected": "ilazo", "provenance": "weksa-placeholder"})
self.assertTrue(any("'zo'" in str(f) for f in errors(t)))
def test_long_word_is_warning_not_error(self):
t = table()
t["compositions"].append({"morphemes": ["ila", "werum", "ila", "werum"], "expected": "ilawerumilawerum",
"provenance": "weksa-placeholder"})
self.assertEqual(errors(t), [])
self.assertTrue(any(f.severity == "warning" for f in check.check_table(t)))
def test_consonant_inventory_must_stay_open(self):
t = table()
t["consonants"]["inventory"] = ["l", "m"]
self.assertTrue(any("inventory" in str(f) for f in errors(t)))
def test_apostrophe_is_not_a_letter(self):
self.assertEqual(check.letters("Sa'ueia"), "saueia")
if __name__ == "__main__":
unittest.main()

View file

@ -0,0 +1,390 @@
# Zyphos Name Briefs (DRAFT)
**Status: every name in this file is DRAFT. None is canon.** Per the
[README](./README.md), a name is canon only when a language project can explain
its ontology and form. No such project exists yet, so these are candidates held
against briefs, not entries in a lexicon.
Source: follow-up `weksa-body/zyphos-name-drafts`. Brief shape follows
[Language Design Pressure](./language-design.md#naming-brief-shape): the brief
comes before the name, and the name is the receipt. Setting context was read
from the Zyphos vault (`Species/Airawa`, `Species/Matriarch Trees`,
`Species/Sa'ueia`, `Civilizations/*`, `Ecology/Breeding Grounds`,
`Ecology/Nation Scale Interbeings`); the vault was not edited.
Both brief sets wait on Meta's answers to `vq-first-language` and
`vq-name-scope`. Where a brief's scope depends on them it says so.
## What the sound rules actually give us
`language-design.md` is thin, and the briefs should not pretend otherwise.
- **Airawa** has a provisional list (R-A below). It is a tendency list, not a
phonology: no vowel inventory, no photactic limits, no stress rule beyond
"heavy on socially important forms".
- **Sa'ueia has a working sound section**
([Sa'ueia Sound](./language-design.md#saueia-sound-proposal-for-deru-to-cut),
enforced by `sa-ueia/check.py` against `sa-ueia/table.yaml`). It is a
proposal Deru approved in outline; only the species name is canon. Rule
labels R-S4..R-S8 below cite it. The consonant inventory, syllable shapes and
stress are still open, so sound arguments beyond the letter rules stay weak.
- The **imperial Airawa register** has no sound rules either. It is only
described as "an artificial quarter-continent clausiform exception imposed
through biological-memetic control", not "named like a normal state with wet
nouns glued on".
Rule labels used below (quoted or paraphrased from `language-design.md`):
| Label | Rule |
| --- | --- |
| R-A1 | Airawa: dorsal and coronal plosives prominent (`k g q t d`). |
| R-A2 | Airawa: sibilants and postalveolars carry social texture (`s z sh zh`). |
| R-A3 | Airawa: `r` may be trilled in some registers. |
| R-A4 | Airawa: clipped or closed syllables tolerated, where Sa'ueia would flow longer and wetter. |
| R-A5 | Native Airawa names must not read like smooth Sa'ueia route names unless explicitly loan, exonym or cross-continental register. |
| R-A6 | Room consensus: hard edges, clipped/closed syllables, heavy stress on socially important forms, so claims land with weight. |
| R-S1 | Sa'ueia is softer than Airawa. |
| R-S2 | Sa'ueia forms flow longer and wetter than Airawa. |
| R-S3 | Sa'ueia route names read smooth. |
| R-S4 | Sa'ueia letters: vowels `a e i o u`; forbidden `h q y` (`k` where a `q` might have been). |
| R-S5 | Sa'ueia: short words, soft and open; at most 10 letters joined (warning, Weksa placeholder). |
| R-S6 | Sa'ueia: suffixing morphology; identical letters merge at a join (`weru`+`um` -> `werum`). |
| R-S7 | Sa'ueia: no doubled letter inside a morpheme (Weksa placeholder); a double arises only at a join, and the merge removes it. |
| R-S8 | Sa'ueia roots from Deru: `ila` walk, `weru` know, `olune` breeding ground (unanalyzed), `-um` verb suffix. Composed: `werum`, `ilawerum` (walk of knowledge). |
| R-N | Naming rule: meaning decomposition first; define the speaker's scale, name type (endonym, exonym, ritual avoidance, technical, imperial administrative, route-name, child-name, trade gloss), what the speaker's ontology makes obligatory, and whether the name is stable, seasonal, situational, inherited or evasive. |
Existing scratch evidence to keep in view: `Druzkai` (Face for a non-imperial
archivist) and the first-contact slice lexicon (`atar`, `qatar`, `daruq`,
`karuq`, `qerath`, `thaleq`...). Neither is canon either.
Each target's brief ends with **reject if** conditions. A name that fails one
goes back to the brief, not to a patch.
---
## Airawa, non-imperial
Common to all Airawa briefs below, unless one overrides it: the speakers are
pre-imperial or never-imperial Airawa, in the `Pre-Imperial Airawa Tribes` /
native nation-scale sense, not the Empire. Registers (Airawa imperial, native
tribal, mother-tree-facing) must not collapse into one naming soup
(`README.md`, Authority).
### A1. Airawa self-name (candidates: `Qazhkar`, `Dozkai`, `Tegzhir`) — DRAFT
```yaml
target:
kind: endonym (what a non-imperial Airawa people call themselves)
canon_source: Species/Airawa; Civilizations/Pre-Imperial Airawa Tribes
provisional_english_handle: "the Airawa, as they name themselves"
namer:
language_project: none yet (non-imperial Airawa, native register)
register: formal naming register (slice: `qatar`, formal name), not casual
relationship_to_target: the speaker is the target
```
- **Speaker:** a non-imperial Airawa speaking as a people, or as a tribe
inside the people (open: see scope question).
- **Addressee:** primarily other Airawa and witnesses at formal naming; second,
an outsider receiving an introduction (the first-contact scene).
- **Register:** formal, standing-bearing; the kind of word that follows `atar`
("I stand as") and has to land with weight (R-A6).
- **Meaning decomposed before surface:**
a self-name here is probably not "people" in the English sense. The setting
makes the unit of selfhood a relationship: a lineage held by a mother tree,
bound by gestation contracts, contract dress and nutrient obligation. The
candidate meaning bundle is: *those held in memory by mother trees* /
*those who owe and are owed* / *kin through the archive*. It must also work
as a contrast with the empire, which edits memory: the pre-imperial self-name
should presuppose negotiated, leaky membership, not a uniform nation.
Scope question (needs `vq-name-scope`): one pan-Airawa word, a per-tribe
word, or a word for the *kind* of polity (nation-scale interbeing, which
includes the trees)?
- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6; R-A5 as a negative check.
- **Per-candidate sound read (judgment, not rule):**
- `Qazhkar`: `q` + `zh` + `k`, two closed syllables (Qazh-kar), fits R-A1,
R-A2, R-A4, R-A6 cleanly. Shares `-kar` with `sakar` and `kazhar` from the
slice. That is a plus if `-kar` is meant to be a role/person suffix and a
minus if it was only a sound resemblance.
- `Dozkai`: closed first syllable, open second ending in a diphthong `ai`.
Fits R-A1/R-A2 but the open `-ai` tail is the softer shape R-A4 contrasts
against. Also two edits from the scratch name `Druzkai` (insert `r`, `o` to
`u`); two names with that near neighbourhood will blur unless one is explicitly derived from
the other.
- `Tegzhir`: `t-g-zh` cluster, closed final syllable, clean fit. The only
candidate with a front vowel in the stressed syllable, which may or may not
be a feature.
- **Reject if:**
- the meaning bundle above cannot be stated in one clause that names the
mother-tree relationship (a bare "people" or "the strong" gloss);
- the form also reads as a plausible Sa'ueia word (R-A5);
- it is shared, as a root, with the imperial exonym in A4 without a recorded
reason (loan or deliberate echo);
- the project owner decides the self-name is per-tribe and the word is only
pan-continental.
- **Preferred shape of choice (not a ruling):** pick by the meaning bundle, not
by taste; all three pass the sound list, so sound is not a discriminator here.
### A2. Mother tree (candidates: `Kharzdun`, `Qetoz`) — DRAFT
```yaml
target:
kind: name for a being / kind of being, not a place
canon_source: Species/Matriarch Trees; Ecology/Mother Tree Networks
provisional_english_handle: "mother tree / matriarch tree"
```
- **Speaker:** non-imperial Airawa. Possibly two speakers needing two words:
a tribe naming *its* tree, and a general word for the kind. Open.
- **Addressee:** other Airawa (referring to the tree); *not* the tree itself.
The slice requires distinguishing "direct speech to a mother-tree" from
"authorized delivery to it", so referring and addressing probably want
different forms.
- **Register:** archival / ritual-respectful. Not a diminutive and not a
kinship term.
- **Meaning decomposed before surface:** the English handle "mother" imports
nurture. The vault's tree is a gestator *and* a memory-holder *and* a party
with coercive leverage (memory can be held hostage; defying it costs
ancestral continuity). The Airawa name should carry at least: *keeper of
memory* and *gestation contract*, and should not smuggle in "gentle". Whether
the name also marks the tree as a sovereign party (a polity, since it is a
node in a nation-scale interbeing) is a fork for the owner.
- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6.
- **Per-candidate sound read:**
- `Kharzdun`: the `kh` is outside the R-A1/R-A2 list (`k g q t d s z sh zh`);
it needs either a rule admitting it or a respelling. Three syllables with
`rz` cluster and final `-dun`: heavy, closed. Strong fit to R-A6 otherwise.
- `Qetoz`: `q` + `t` + `z`, two syllables, fits R-A1/R-A2; the open middle
vowel pattern (`e`, `o`) is lighter than `Kharzdun`. Shorter is arguably
right for a word said often; longer for a word said with weight.
- **Reject if:** the name decomposes only to "mother"/"nurse"/"grandmother"
(kinship nostalgia without the contract and coercion); it is the same word
the empire uses for the tree as *infrastructure* (the Biological Memetic
Engine reuses the tree network, so the empire's word is a different brief);
the project owner rules the kind-word and the individual-tree-word must be
separate and only one is given.
### A3. Disconnected network (candidates: `Gisqat`, `Zhedkor`) — DRAFT
```yaml
target:
kind: name for a surviving mother-tree ecology that severed itself
canon_source: Civilizations/Disconnected Tree Networks
provisional_english_handle: "disconnected (tree) network"
```
- **Speaker:** a native non-imperial Airawa, ideally someone inside or allied
with such a network. **Not the empire**: the empire denies they exist
(`Airawa Empire`, "Nations It Refuses to Recognize"; they are called
"disease, criminal ecology, or imperial tissue awaiting correction"), so the
imperial register has no sanctioned word, and any imperial term is a
separate brief (A4).
- **Addressee:** other native Airawa; possibly a visiting envoy (the vault has
envoys crossing into Sa'ueia territory). Rumor-grade circulation: the networks
"keep rumors moving through routes the engine cannot fully process".
- **Register:** careful. The vault has the status as survival, refusal and
wound at once; the name may need an indirect/evasive form
(`README.md`: "safe-to-name, indirect-name-required, silence-required").
- **Meaning decomposed before surface:** *severed* is the surface fact; the
contentful meaning is *alive because cut*: the connection was surrendered to
preserve the self. A gloss of "isolated" or "cut-off" loses that. Axes to
decide: is the name about the cut (act), the survivor (state), or the
continued resistance (role)? Do networks of "trees with more control than
people" and "anti-imperial Airawa communities" share one word, or does the
word name the property (disconnection) rather than the polity?
- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6.
- **Per-candidate sound read:**
- `Gisqat`: `g-s-q-t`, two closed syllables; a hard stop sequence that reads
as something cut off, which is apt but also a sound-symbolic gloss the
project should not over-trust.
- `Zhedkor`: `zh-d-k`, trilled `r` available (R-A3); heavy and closed.
- **Reject if:** the form is also the imperial term (the empire's denial means
the two registers should not share one word without cause); it glosses to
"dead", "lost" or "isolated"; the owner decides the target is a *property*
word (adjective for any severed tree) and the candidate is a *noun for the
polity*, or vice versa.
### A4. Imperial exonym for the natives (`Tkarzet`) — DRAFT
```yaml
target:
kind: exonym, imperial administrative
canon_source: Civilizations/Airawa Empire; Conflicts/Xenophobic Memetic Campaign
provisional_english_handle: "the natives / unincorporated Airawa"
namer:
language_project: none (imperial Airawa register)
register: imperial administrative / doctrinal
relationship_to_target: classifier, denier
```
- **Speaker:** the Empire, an artificial nation-scale interbeing speaking
through ministries, doctrine and memetic organisms.
- **Addressee:** imperial citizens and administrators; also doctrine-carrying
memes. Not the natives: it is not a word the natives would be called by to
their faces in a respectful exchange.
- **Register:** official. The language-design rule says this register is
"an artificial quarter-continent clausiform exception", not a normal state's
wet-noun coinage.
- **Meaning decomposed before surface:** the empire's stance is
*non-recognition*: native nations are "disease, criminal ecology, or
imperial tissue awaiting correction"; unification is "biologically
inevitable". So the exonym should classify natives as *not-yet-incorporated
tissue* or *contamination*, not as a people who happen to be foreign. It
should be usable in doctrine and in accusation (dissenters are "infected").
Open: does the word split native Airawa from the disconnected networks (A3)
or is it a single catch-all? The empire denies the networks exist, so the
catch-all risks naming what the doctrine says does not exist.
- **Sound rules that apply:** R-N (exonym). The provisional R-A list governs
*native* Airawa, not the imperial register. There is no imperial phonology
rule yet, so any sound argument for `Tkarzet` is by analogy to R-A1/R-A2.
`Tkarzet` opens with a `tk` cluster that appears nowhere else in the
candidate set or the slice lexicon; it either marks the imperial register as
phonotactically different (good if intended) or is a stray.
- **Reject if:** it is a bare monosyllabic-looking root with no clausal or
administrative structure (the imperial register is clausiform); it is simply
a native word borrowed with harsher spelling (R-A5's reverse: the imperial
word should not accidentally be a native one); it gives the natives a
sovereign-people gloss, contradicting the doctrine; the owner decides the
imperial register needs a distinct sound system and the candidate cannot be
defended against it.
---
## Sa'ueia family-unit and ecological contexts
Common context: the Sa'ueia civilization is mobile, family-unit based
(squad-sized groups doing kinship, craft, diplomacy and oaths together), with
sacred communal breeding grounds and reciprocal ecological partners. A name
earns its place by revealing the ecological deal, reproductive pressure,
memory technology or route consequence (`language-design.md`, design target).
The sound rules available are R-S1..R-S8 and R-A5; the inventory, syllable
shapes and stress are still open.
### S1. Sa'ueia self-name (candidates: `Ellumaiwa`, `Sauwele`) — DRAFT
```yaml
target:
kind: endonym; family-unit scale, not species scale (open)
canon_source: Species/Sa'ueia; Civilizations/Sa'ueia Family Units
provisional_english_handle: "the Sa'ueia as a family-unit people"
```
- **Speaker:** a Sa'ueia family unit speaking as itself (family-self scale),
possibly on behalf of the wider people.
- **Addressee:** other family units meeting on a route or at a breeding
ground; and ecological partners that keep memory of it (reputation is
held by partners, not only by humans).
- **Register:** family-unit speech, relational and portable; a name that
survives travel and can be re-presented to a partner that remembers you.
- **Meaning decomposed before surface:** the vault makes the family unit the
carrier of standing, and standing is the partners' memory of generosity. So
a self-name probably means something like *those who return and are
recognized as beneficial* / *the traveling reciprocal*, not *the people of a
place*. Scope fork: the continent-scale word "Sa'ueia" already exists in the
vault as the species/continent ethnonym; the candidates may be (a) family-unit
*kind* names, (b) nicknames for the people derived from it, or (c) a
competing ethnonym. This needs `vq-name-scope` before judging.
- **Sound rules that apply:** R-S1, R-S2, R-S4, R-S5, R-S7; R-A5 as a negative check.
- **Per-candidate read (judgment, then the letter rules):**
- `Ellumaiwa`: long, open, liquid-heavy. Fails R-S7: `ll` is a doubled
letter inside a morpheme, with no join to merge it, unless the form
is parsed as `el`+`lumaiwa` (then the merge rule would give `elumaiwa`).
Also 9 letters, near the R-S5 bound. Needs a respelling or a parse, not a
patch.
- `Sauwele`: short, open vowels and `w`, `l`; passes R-S4/R-S5/R-S7, but it
begins `Sa-u-` exactly like `Sa'ueia`. Reads as a respelling or derivation
of the existing name rather than an independent self-name.
- **Reject if:** the owner has not decided the target scale; `Sauwele` is
accepted without a recorded derivation from `Sa'ueia` (otherwise it is an
accidental duplicate); either name decomposes to "wolf-like", "pack" or
"nomad" (the vault warns the wolf comparison explains only part of them, and
"nomad" is a camera-angle word); it cannot take a family-specific modifier
when a particular unit needs naming.
### S2. Breeding ground (`Olune`, Deru's root; `Oluneihe` withdrawn) — DRAFT
```yaml
target:
kind: place-name / commons name, ritual register
canon_source: Ecology/Breeding Grounds
provisional_english_handle: "breeding ground"
```
- **Speaker:** a Sa'ueia family unit returning to a ground; and the ground's
year-round occupants (infants, infirm, caretakers, rotating specialists).
- **Addressee:** other family units, partners that remember them, and the
occupants when arrival is announced.
- **Register:** ritual-communal; the vault gives these as places of
transition, mourning, dispute settlement, medical care and obligation
renewal, so the name has some solemnity.
- **Meaning decomposed before surface:** *commons* is the key axis: it is not
property, not a seat, not a nursery run by an empire. The name should mark a
place that *remains* (occupied all year) while the people circulate, and that
gathers reproduction, care, memory and law. It must distinguish itself from
camp, route and partner site (the Simulation Brief explicitly asks what makes
these visibly different). If the name is a *kind* name, it has to be
generic enough to name every ground; if it names one ground, it needs a
proper-name layer.
- **Sound rules that apply:** R-S1, R-S2, R-S3, R-S4, R-S8.
- **Read:** the target already has a name from Deru: `olune`, breeding ground
(R-S8), unanalyzed. The earlier candidate `Oluneihe` is withdrawn: it
contains `h`, which R-S4 forbids, and its stem `Olune` is Deru's own root, so
the candidate only added a suffix to a word that already answers the brief.
What remains open for this brief is whether `olune` is the kind-word, a
single ground's name, or needs a proper-name layer; and its morpheme
boundaries, which Deru has not given.
- **Reject if:** any proposed form contains `h`, `q` or `y`; it decomposes to
"home", "village", "city" or "capital" (the breeding ground failing as a
capital is a stated system failure); it equals or contains the route word
(S3) or the family self-name (S1), which would merge distinct targets; it is
used for a camp; it replaces `olune` without Deru's say.
### S3. Route as obligation (no candidate) — DRAFT
```yaml
target:
kind: route-name; relation, not geography
canon_source: Themes/Ecological Bargaining; Ecology/Reciprocal Ecologies
provisional_english_handle: "route (as owed relationship)"
```
- **Speaker:** a Sa'ueia family unit that holds or renews a route.
- **Addressee:** other units; the ecological partners (feeding sites, groves,
herds, pollinator corridors) that keep memory of how the unit travelled it.
- **Register:** family-unit speech with some formality: this is a promise-bearing
word. Possibly a seasonal/situational name (a route can open or close
depending on remembered injury).
- **Meaning decomposed before surface:** the key point is that *the route is a
relationship that makes passage available*, not a path on the ground. A unit
may be physically able to travel yet unwelcome (`Family Units`). The word
should mean something like *the standing that lets us pass*; ideally it
distinguishes *the way* from *the debt*. If both senses are one word, the
language is making a commitment about their identity that the vault does
not make.
- **Sound rules that apply:** R-S2, R-S3 (route names read smooth), R-S4..R-S8. Also R-A5:
Sa'ueia route names are what Airawa native names must not accidentally
resemble.
- **Read:** `Ilawerum` is not a candidate. It is Deru's own composition,
`ila` (walk) + `werum` (knowledge, verb form `weru`+`um`), glossed "walk of
knowledge" (R-S8). It names a different thing, and the checker reproduces it
as a fixed composition. Any route-as-obligation word should be built from
Deru's roots or new roots she accepts, and must not be confused with, or
collide with, `ilawerum`.
- **Reject if:** it is `ilawerum` or only a respelling of it; it is a plain toponym (no debt sense); it is the same word as
the breeding ground (S2) or shares its stem without a morphological reason;
the owner decides route and obligation are two words and this is only one.
---
## Questions this raises (owners, not decisions)
- **Scope:** one word per ethnonym or per tribe/unit? (`vq-name-scope`.)
- **First language:** Airawa vs imperial Airawa vs Sa'ueia vs a narrow
naming-brief interlingua (`vq-first-language`; `state/map.yaml`). The Airawa
briefs are better supported by existing sound evidence; the Sa'ueia briefs
have only the working sound section, which leaves the inventory open.
- **Sa'ueia open items** (inventory, syllable shapes, stress, apostrophe role,
`weru` versus `wer-`) are Deru's; S1-S3 are judged on the letter rules only
until she cuts them.
- **Imperial register sound rules** for A4.
- **`kh` in `Kharzdun`**: add to the Airawa inventory or respell.

View file

@ -0,0 +1,403 @@
# Rust to Dust Imperial Language: Design Spec
Status: **DRAFT r0.** First conlang project for Rust to Dust. Nothing here is
canon until the operator rules on it.
The language has no name. Its working slug is `rtd-imperial`. A name is owed
and should come from the ontology and phonology below, as
[setting.md](../setting.md) asks, not from an English label. Nothing here
assigns one.
## How To Read This
Every claim carries a tag:
- **[E]** evidence. The source material says it, and the file is cited.
- **[I]** invention. This draft proposes it. The operator can overrule it, and
it is the part most worth attacking.
- **[E→I]** an extension. The source gives a seed and this draft develops it.
Sources read: everything under `settings/rust-to-dust/` (`README`, `setting`,
`aliens`, `story`, `battle-royale`, `language-design`), the house method in
`settings/eusocial-interbeing/language-design.md`, and Weksa's
`docs/language-model.md`, `interlingua-standard.md`,
`best-modern-approach.md`, `multilingual-utterance-lowering.md` and
`schemas/interlingua-packet.md`. The stance design is read from `main` (see Dependencies). The forge repos and
Weksa `state/` and `docs/` hold no other Rust to Dust material: a forge search
for the setting returned nothing outside Weksa. This draft therefore rests on
about 440 lines of setting prose, and the invention share is large.
## 1. Speech Community
### Who speaks it [E]
The empire's aliens: reptilian, scale-decorating, aesthetics-as-moral-truth,
honor as devotion to aesthetic perfection in a chosen field (`aliens.md`). The
empire is galaxy-spanning, so the language is a **network language**. Its
community is defined by the imperial cultural network (media, prestige,
commerce), not by a homeland. Humans are not native speakers. They meet it
through subtitles, memes and broadcasts, and their contaminated English is a
separate register (`language-design.md`, Registers).
### Speech situations [E→I]
`language-design.md` lists registers. This draft turns each into a situation
with a speaker, an addressee and a stake, because a register is a relationship
and not a vocabulary list:
| Situation | Speaker → addressee | Stake | Source |
|---|---|---|---|
| Broadcast commentary | commentator → mass imperial audience, about a performer | rendering an aesthetic verdict in real time | E (battle-royale) |
| High honor speech | warrior or master → rival, patron or witness | binding a vow, naming a performance | E (register list) |
| Warrior discourse | practitioner ↔ practitioner of one field | form, discipline, challenge | E (register list) |
| Commercial acquisition | buyer ↔ seller, or buyer → cultural object | access and integration phrased as uplift | E (setting: commerce as delivery rail) |
| Panel-show media | host ↔ guest before an audience | turning the guest's stance into performance | E (story: the panel) |
| Tourist admiration | tourist → anything | consuming a safe spectacle | E (aliens: tourists) |
| Address to humans | any → human | uplift, fascination, appraisal | I |
The last row is added. The story's central irony is that the empire
understands the father's refusal better than he understands the empire, so
how imperial speakers address humans is a design surface, not an afterthought.
The first proving slice is **broadcast commentary** [E]: `battle-royale.md`
names it as the runtime use, and it needs the fewest situations to be
distinguishable by a reader.
### Status ladder [I]
The source gives status *signals* (scale decoration marks profession, class,
rank, grief, celebrity, courtship, school, combat discipline, public
obligation, commitments) and a *measure* (the more elaborate the decoration,
the more visible the claim of virtue). It gives no ladder. The invention:
status is two axes, not one.
- **Field.** The discipline one is devoted to (combat, speech, hosting, trade,
politics, art). Honor is field-relative [E]. A master of one field has no
rank in another.
- **Standing in the field**, by *claim and demonstrated constraint*, not by
force:
1. **Unclaimed.** No decoration in a field. This is shameless, not neutral
[E: unpainted = shamelessness].
2. **Claimant.** Decorated, undemonstrated. Tourists live here: the claim is
bought and the constraint never chosen [E: tourists buy a safe spectacle].
3. **Practitioner.** Decorated, with constraint demonstrated in the field.
4. **Master.** Constraint demonstrated before witnesses.
5. **Exemplar.** Master whose form others cite.
- **Bare-by-claim** is an exceptional state off the ladder, not a step on it.
Going unpainted as an artistic claim that the performance alone is art is a
provocation [E]. The grammar must be able to say it without saying
"shameless".
The language's address and agreement system tracks **claim versus
demonstrated constraint**, because that is what the source treats as the
moral measure. A tourist's loud, expensive decoration is a *mismatch* the
language can state, and the language carries that mismatch in the grammar
itself.
Decoration is the primary status channel in the world. In speech it surfaces
as address terms, honorific-like marking and metaphor (Section 4), not as a
phoneme-level trick.
## 2. Phonology (provisional)
The source gives no phonetic profile. It poses the question
(`language-design.md`, Open Questions) and says naming should follow from
phonetics. House method (Zyphos) assigns Airawa hard dorsal and coronal
edges and Sa'auei'a soft flow. This language must not collapse onto either
[I].
### Design stance [I]
Three pressures from the source, turned into sound:
1. **Aesthetic devotion**: the language should sound *composed*. Prosody is
deliberate, with controlled length, no clutter.
2. **Chosen constraint is mastery**: constraint should be audible. Phonotactics
are *tight*, so that a speaker visibly refrains from the permitted-in-vulgar
alternatives.
3. **Reptilian body** [E: reptilian]: the inventory leans on sustained
fricatives, hisses and trills that a non-human vocal tract makes easy. The
source does not specify a vocal tract. This is the weakest-evidenced
choice and a human-pronounceable romanization is therefore required.
### Inventory (draft)
- **Stops** (voiceless only): `t`, `k`, `ʔ`. No voiced stops. This separates it
from Airawa's `g d q`.
- **Fricatives**: `s`, `ʃ`, `x`, `h`, with voiced `z`, `ʒ`. Fricatives
contrast in **length**: short and held. Held fricatives are the language's
main prosodic ornament and carry register weight (Section 3).
- **Sonorants**: `n`, `m`, `l`, trilled `r`.
- **Vowels**: `a`, `i`, `u`, `e`, each short or long. A long vowel is the
other register-bearing length.
- **Syllables**: `(C)V(C)`, coda `s n l ʔ` only. No clusters. The absence of
clusters is the phonotactic form of "chosen constraint".
### Prosody [I]
- Stress and length are the speaker's expressive budget. In formal
registers, *less* length variation reads as more command of the form. A
commentator in broadcast register may spend length on a performer's
moment, and an honor-speech speaker withholds it. Restraint is therefore
audible without a phoneme change (Section 3).
- Broadcast commentary has a lengthened, sibilant "announcer" delivery. Tourists
over-lengthen. Master speech under-lengthens.
### Romanization and rendering [I]
An ASCII romanization is owed before any lowering output is scored: the
lowering renders text, and the renderer for the audience needs
a stable orthography. `ʃ ʒ x ʔ` need ASCII digraphs. The choice follows
the Weksa pronunciation-lowering docs and belongs to a later cut.
### Open
- The inventory is a sketch, drawn from three pressures. It should be rerun
after at least a hundred roots exist, not defended.
- The source calls for names to "emerge from ontology and phonetics". This
draft supplies phonetics, and the name waits for the first root set.
## 3. Register, Status and Restraint: Stance Explicit
### Weksa's constraint [E]
On `main`, `docs/interlingua-standard.md` carries
a packet `stance`: **felt affect** (anger, fear, sadness, joy, disgust, surprise,
contempt, affection, shame, as grades) and **`restraint`**, how much of the
felt affect is held back (0 none, 1000 fully). It is felt, never displayed.
How a feeling shows and how much leaks is cultural; each language's ontology
maps felt affect and restraint to its own register. A held-back feeling is not
a claim, so it is never a predication.
This language must therefore **mark stance explicitly in its own grammar**,
and the marking is derived from the packet's `stance`, never from English
register words in the source text.
### Why this language is the hard case for restraint [E→I]
For the empire, restraint is not suppression of a shameful interior. It is
**the visible form of chosen constraint**, which is the moral proof of
mastery [E]. So the map from `restraint` to surface is *inverted* relative to
most human defaults:
- High restraint is the *display* of virtue. A fully restrained speaker with
strong felt affect is exhibiting form.
- Low restraint with strong affect is not honest. It is *vulgar* [E: "vulgar
violence as failed form"; "collapse into mere function"].
- Zero affect is not neutrality. It can read as an absence of devotion.
The deliberate consequence is that stance cannot be flattened to a politeness
level. Two axes are needed, and the source's lens questions (elegant,
disciplined, sincere, vulgar, memorable) ask for both.
### Obligatory categories [I]
Proposed grammatical commitments (the target-language selections that step 4
of `language-model.md` demands). Each names the packet field that feeds it.
1. **Finish marking** on predicates: an obligatory grade-class drawn from
`stance.restraint`, coarsened to a few classes. Working classes:
*raw*, *held*, *finished*. The unmarked form does not exist: leaving it
off is not neutrality but a gap that the community reads as vulgar.
Feeds from: `stance.restraint`.
2. **Leak channel**: how much felt affect shows *through* a high-restraint
frame. Leak is not mapped to emotion words. It is mapped to **form
choices**: clipped versus full inflection, length spent on a fricative,
word choice within a field. This follows the standard's own example
(anger leaking through clipped syntax is stance). Feeds from: felt affect
grades against `restraint`.
3. **Standing agreement** on referents: field and standing-in-field of a
named performer, with the **claim/demonstrated** mismatch statable. Feeds
from: speaker and scene features (Section 6).
4. **Witness and form-evaluation**. Broadcast commentary is evaluative by
situation. Evaluation is expressed as a **separate discourse layer**
(a particle or clause layer), not as adjectives in the content: the
lens questions [E] (elegant, disciplined, sincere, vulgar, memorable,
promising, mastery, collapse) are the layer's open slots. It is
kept apart from content because a held-back evaluation is not a claim
about the world, and the interlingua keeps content and attitude
separate. Feeds from: `discourse` features and the situation.
5. **Evidential**: commentary asserts what the camera sees and *infers* the
performer's sincerity. The inference must be marked, because the source
puts sincerity in the performer, who is not the speaker and not available to
telemetry. Feeds from: the evidentiality feature the standard already
names.
### Register is a function of three inputs [I]
Register is not a setting on the speaker. It is selected from the pair
(speaker's standing and community, scene relation to addressee and subject)
and the situation, with stance as the final modulator. This is what
`persona-drives-ontology` implies on `main` and what the
`language-ontology` cut will implement as deterministic selection
`select(profile, stance, speaker, scene)`. This spec supplies the **content
of that selection table** for this language; it does not write the table.
Cases the table must cover first:
| Case | Expected pull |
|---|---|
| Commentator, high restraint, strong approval of a restrained low-means act | finished marking; evaluative layer foregrounded; length withheld |
| Commentator, low restraint, strong approval | raw marking; the speaker is performing delight. Only permitted in tourist-adjacent registers |
| Master addressing rival | held or finished; address by field and standing |
| Tourist, any affect | claimant standing; over-lengthened; evaluation layer present but misapplied |
| Host to a human guest on a panel | warmth and appraisal mixed: affection plus contempt at high restraint is the *normal* pairing. The guest's rejection is absorbed as form |
The last row is the story's turn written as a stance mapping, and is worth
testing first: contempt and affection together, restrained, with the evaluation
layer calling the rejection *sincere*.
## 4. Meaning Before Surface
The language is never produced by substituting English words with alien
ones. The method is the Weksa path (`language-model.md`): packet, then
ontology projection that can split, collapse or reweight concepts, then
grammar commitments, morphology, phonology, surface.
### Concept splits and collapses [E→I]
The source names distinctions the language must make (`language-design.md`,
Open Questions). Each is decomposed below into components so a lowerer can
select a form from the packet's facts and not from a gloss.
| Distinction | Decomposition (hypothesis) | Needs from the packet |
|---|---|---|
| **victory** vs **mastery** vs **spectacle** vs **vulgar overmatch** | victory: outcome of a contest. mastery: outcome *plus* demonstrated chosen constraint. spectacle: attention drawn, independent of constraint. vulgar overmatch: means exceed the opposing means with no constraint chosen. | outcome; each party's means; whether the means were chosen |
| **crude** vs **failed** | crude: sincere, unrefined, with form attempted. failed: form collapsed into mere function. | actor's means and discipline as facts; the stance of the performer is not available, so the ontology reads from conduct |
| **resistance** admired and absorbable | resistance read as: threat, folk art, breakout talent (`battle-royale.md` commentary list). Choice depends on whether it centers a performer or a practice. | performer-centered vs distributed agency |
| **public spectacle** vs **living practice** [E] | spectacle: meaning lives in a central performer. practice: meaning lives in relationships. The empire reads distributed cooperation as noise or misattributes it to a performer. | number and relation of agents; presence of a focal agent |
| **unpainted**, split | shame / danger / contempt / rawness / refusal / purity (the source lists these senses). Different surface forms: the sense is selected by relation and stance, not by a gloss. | decoration state, scene relation, speaker stance |
### Scale decoration in grammar and metaphor [E→I]
Decoration is the language's central metaphor domain [E: used for rank,
grief, celebrity and more]. Proposed uses, to be tested not asserted:
- **Address**: terms of address name a decoration claim ("the one marked for
...") instead of a rank noun.
- **Insult**: lack, mismatch or fraud of decoration (a claim not backed by
constraint). The strongest insult is the claimant who is also vulgar.
- **Praise**: finish, as in a surface completed.
- **Metaphor**: grief and obligation are *worn*. A human speaking of loss
reads, in this language, as a person visibly undecorated by it.
The source does not say whether the language has these metaphors. They are
the draft's strongest invention and the easiest to overrule.
### Root families [I]
House method: faint family resemblance, never a nametag. No roots are
proposed here. The first root set should come from the field concepts
(combat, speech, hosting, trade, art) and the constraint/finish axis, and
should be minted against corpus items, not authored in a vacuum.
### Contamination direction [E]
What leaks into human English first (`language-design.md`) is an open
question. [I] Candidates are evaluation-layer particles (the empire's form
verdicts become meme tags) and the claim/finish vocabulary, because the
story's kids absorb *prestige codes* first. The subtitle renderer is a
separate target profile and not this spec's job.
## 5. Evidence and Invention, Summarized
**Evidence-backed (E):**
- reptilian, aesthetic-honor, decoration-as-status speakers; unpainted as
profound shamelessness; unpainted-as-provocation for a rare few
- mastery requires chosen constraint; overmatch and tourists are vulgar; the
lens questions
- the empire is a network; commerce carries, culture conquers; the registers
listed
- broadcast commentary and flavor-first subtitles as the runtime use
- the packet has `stance` with felt affect and restraint; the ontology maps
them (on `main`)
**Invention (I):**
- the two-axis status ladder and the claim/demonstrated-constraint mismatch
- the whole phonological inventory and prosody
- the five obligatory categories and the inverted restraint reading
- the decoration-grammar and metaphor uses
- the speech situations table, notably the address-to-humans row
- the contempt-plus-affection panel pairing
**Not settled in the source and left open:**
- the language's and speakers' names; the vocal tract; whether the empire is
one language community or a family of dialects; whether non-reptilian
imperial subjects speak it and how it marks them
## 6. What The Lowerer Must Provide
Interlingua rule [E]: the packet carries neutral meaning plus source-side
communicative pressure, and target-language concept splits belong
downstream. The earlier Rust to Dust sketch in `language-design.md` puts an
`aesthetic_reading` block (form, discipline, spectacle, honor status) **in
the packet**. This draft recommends moving it: those are the *imperial
ontology's reading* of neutral facts, so they belong in the ontology
projection, and the packet carries the facts the reading is derived from.
[I] This is a change to existing content and the operator should rule on it.
Fields, in order of need. "Seed" means the standard's inventory already has
a slot. "Gap" means the standard has no field yet; per the Promotion Rule,
the gap is first an `rtd.*` extension and is promoted only after use in two
real packets.
| Need | Why | Status |
|---|---|---|
| `stance` with felt affect and `restraint` | the whole of Section 3 | seed (on `main`) |
| **speaker** axes: field, standing in field, school or lineage, decoration state, community | status and register selection | seed slot `Speaker` (still planned, cut `speaker-scene`); the *values* are the gap |
| **scene**: relative status of speaker, subject and audience; audience composition (imperial, tourist, human via subtitles) | register and address | seed slot `Scene` (still planned, cut `speaker-scene`) |
| `medium` and `setting` ids for broadcast commentary | situation selection | seed (`context`) |
| `instrument` role on predications, **for each party** | overmatch is derived from both parties' means | seed role |
| **volition of the constraint**: chosen / compelled / unknown, as a predication feature | the line between mastery and mere lacking | gap (`rtd.` extension first) |
| **ordering of means** (power or means gap) | vulgar overmatch | not a packet field: ontology-side order over concept ids, so the packet carries concepts and the ontology compares them |
| referent **decoration state** (decorated / unpainted / bare-by-claim / not applicable) | status, insult, the human-undecorated reading | gap (`rtd.` extension first) |
| referent **community** or `member_of` relation | tourist versus warrior; human versus imperial | seed relation `member_of`; community ids come from the `language-ontology` cut |
| **focal agent** presence | spectacle versus living practice | derivable: a predication with plural or no agent role; not a new field |
| `evidentiality` | witnessed versus inferred sincerity | seed feature (to confirm its option set) |
| `polarity`, tense, aspect | ordinary | seed |
| `preserve` | which nodes the commentary must keep | seed (`constraints`) |
Fields the draft deliberately does **not** request: `aesthetic_reading`,
`honor_status`, `spectacle_value` or any value judgment. The performer's
sincerity is not telemetry, and the commentator infers it. These are
outputs of the imperial ontology and must not be put into the packet by the
client, or the client is deciding the language's concepts.
## 7. Dependencies, Risks and Next Cuts
**Dependencies.** Stance is on `main` (Weksa PR #3). Only the `Speaker` and `Scene`
slots are still planned, under cut `speaker-scene`. The `language-ontology` cut
(community and ontology-entry documents) is not landed. This spec states
the content those cuts will hold, and does not substitute for them.
**Risks.**
- The inventory and the grammar are heavily invented on thin evidence. Mitigation:
tag everything (done) and test the five obligatory categories against the
lowerer before building roots.
- The claim-versus-constraint ladder risks making the language a *status-code
detector*. The source's hold is that honor is devotion, not rank. Test:
can the grammar say a bare-by-claim performance without calling it low?
- Draft collided with `language-design.md`'s packet-side `aesthetic_reading`.
Resolved by ruling `rtd-imperial-aesthetic-reading-to-ontology` (below).
**Next cuts, in order.**
1. (done) Operator rulings on the four forks, recorded above.
2. A first corpus slice: ten broadcast-commentary utterances, each decomposed
to a packet (neutral facts plus stance), with the expected surface *category*
(finish class, evaluation layer) and no words yet.
3. The selection table for Section 3's first five cases.
4. A root set from the field concepts, and a naming brief for the language.
5. An orthography and a pronunciation lowering.
**Rulings (2026-11-05, all in force).** The four forks are answered. Their
ids are in the mind's `weksa-body` campaign.
- `rtd-imperial-aesthetic-reading-to-ontology`: `aesthetic_reading` leaves the
packet and lives in the imperial ontology. The packet carries neutral facts
plus stance; form, discipline, spectacle and honor status are the ontology's
reading of them. Section 6 stands.
- `rtd-imperial-two-axis-status`: status is two axes, field and standing, by
claim versus demonstrated constraint.
- `rtd-imperial-inverted-restraint`: restraint is the display of virtue; low
restraint with strong affect is vulgar.
- `rtd-imperial-human-stylized-tract`: the vocal tract is human-pronounceable
stylization, with length as ornament.

View file

@ -52,7 +52,9 @@ Likely language-project registers:
## Runtime Data Needs
Structured intent should carry neutral facts plus cultural annotations.
Structured intent carries neutral facts plus stance. The imperial ontology
derives form, discipline, spectacle and honor status from them downstream
(see `imperial/language-design.md`, Section 6).
Example:
@ -62,13 +64,6 @@ Example:
"act": "ambush",
"actor": "father",
"target": "imperial_guard",
"aesthetic_reading": {
"form": "raw",
"discipline": "improvised",
"spectacle_value": "high",
"honor_status": "ambiguous",
"aesthetic_promise": "rising"
},
"imperial_frame": "authentic_local_defiance"
}
```

View file

@ -221,10 +221,10 @@ open_questions:
- What is the minimal Rust to Dust language-project slice that proves the
engine without hard-coding the setting into it?
- What minimal Eusocial Interbeing language-project slice can prove naming for
Airawa, Sa'auei'a, ecological partner, and imperial registers without
Airawa, Sa'ueia, ecological partner, and imperial registers without
collapsing them into one universal language?
- Which Zyphos language project should be first: Airawa, imperial Airawa,
Sa'auei'a, or a narrow naming-brief interlingua?
Sa'ueia, or a narrow naming-brief interlingua?
- What is the minimal Airawa starter lexicon and permission model needed to
translate the first chieftain/visitor/mother-tree scene honestly?
- How should Airawa encode honorable scars: bodily evidence, honor claim, debt