Reference · conlang

Three generation levels

A one-page comparison of minimal, partial, and rich Specs — what you pin, what the tool samples, and why you would choose each level.

The invariant: a Spec is partial by design. Anything you omit is sampled. The same Spec plus seed produces the same model bytes. See the Spec reference.

The three levels

Level What the Spec pins What is sampled Why choose it
1 · Minimal
level1-minimal
name, seed Inventory, templates, constraints, word count, lexicon, morphology, syntax, discourse, semantics Fast exploration. Useful when you want a surprise or a starting point, not a designed language.
2 · Partial
level2-partial
Inventory, syllable templates, word count Lexicon, morphology, syntax, alignment, discourse, semantics Control the sound and size while leaving the vocabulary and grammar to the generator.
3 · Rich
level3-rich
IPA inventory, templates, forbidden cluster, concepts, lexicon roots, syntax, discourse, semantic model Most affix forms, inflection classes, and the remaining word forms Designed output: a specific sound, grammar, and interpretation with little sampling left.

What the three runs produced

Signal Minimal Partial Rich
Seed 101 202 303
Lexemes 249 139 101
Word forms 1,466 584 184
Inventory Large sampled IPA-like set Ten Latin consonants, five vowels Nine IPA consonants, five vowels
Orthography Identity Identity IPA → spelling map for ʔ and ʃ
Word order SOV SOV SOV
Alignment Accusative Ergative Ergative
Modifier order Prenominal (derived) Prenominal (derived) Postnominal (explicit)
Affixes 18 18 20
Discourse features Off Off Particles, switch-reference, reflexives, evidentiality
Semantic model None None Two individuals; sun, moon, see
Lint Valid Valid Valid

Lexicon size is not the richness axis. Level 1 is the largest because it uses the default word count and full concept list. Level 3 is smaller because its concept list was pinned to twelve items. The axis is how much is specified, not how many words result.

The steps, once per language

# 1. Write a Spec at the level you want.
#    Only spec_version is structurally required.

# 2. Generate. --strict makes lint errors exit non-zero.
.\.venv\Scripts\python.exe -m conlang.cli generate \
  --spec out\language-levels\spec\level-3-rich.yaml \
  --out out\language-levels\level-3-rich.json \
  --workspace out\language-levels --strict

# 3. Render the grammar sketch.
.\.venv\Scripts\python.exe -m conlang.cli render \
  --model out\language-levels\level-3-rich.json \
  --out out\language-levels\level-3-rich.md \
  --workspace out\language-levels

# 4. Freeze it later if the sampled values are the ones you want.
.\.venv\Scripts\python.exe -m conlang.cli accept \
  --model out\language-levels\level-3-rich.json

What each kind of pinning buys you

Pinned fieldEffect on the model
phonologyControls the segment inventory and whether spellings are derived from IPA.
syllablesControls legal word shapes and the templates used for roots and affixes.
word_countTrims or extends the built-in concept list when no explicit lexicon is given.
conceptsReplaces the built-in concept list and fixes the lexical field.
lexiconPins roots, parts of speech, and lock status for chosen words.
syntaxSets word order, alignment, modifier side, and subordinator edge.
discourseTurns on particles, switch-reference, reflexives, and evidentiality.
semanticsDeclares a domain and predicate extensions for evaluation and entailment.

Provenance: did the pin stick?

Model evidenceMeaning
origin: specifiedThe value came from the Spec.
origin: sampledThe generator chose the value.
locked: trueThe entry should survive regeneration.
conceptsSelects which words exist; roots are still sampled.
lexiconPins a gloss, root, and part of speech.

In level-3-rich.json, lex:sun is specified and locked; lex:water exists because it is a concept, but its root is sampled and unlocked.

Decision guide

Primary source: the project's Spec reference and feature guide. The generated models under out/language-levels/ are the evidence behind the table.

Related lessons: Three generation levels · Where your pins land · Read the grammar sketch · Meaning is not the model · Entailment is not validity.