# Ganjaedi Machine Contract — Quick

Contract: GANJAEDI_MACHINE_CONTRACT
Version: 0.2.2
Authority: SECONDARY_SERIALIZATION_OF_ACTIVE_SITE_DATA
Grammar contract: GANJAEDI_GRAMMAR_CONTRACT 1.0.0
Discourse contract: GANJAEDI_DISCOURSE_CONTRACT 1.0.0

Use this document as bootstrap context. It serializes accepted language data; it is not permission to invent missing Ganjaedi forms.

## Authority and failure policy

Machine output is a secondary serialization of active repository data and accepted Owner Canon. It never creates or supersedes Ganjaedi Canon.

Teaching boundary: The public Learn course may be shorter than the active structured grammar snapshot. An omission in Learn does not make a rule undefined when the structured grammar contract licenses it.

Unknown behavior: If no active source licenses a form or construction, report it as unknown or paraphrase with known forms. Do not invent morphology or syntax.

1. explicit dictionary surface and root class
2. active alphabet and orthography data
3. structured grammar snapshot serialized from active Owner Canon
4. active public Learn course as non-exhaustive teaching material
5. machine guardrails and adversarial checks
6. model prior knowledge (no authority)

## Orthography

Canonical Latin is Unicode, not ASCII transliteration. One symbol represents one phoneme. Latin and Cyrillic are parallel writing modes of the same language.

| LAT | CYR | IPA | type |
| --- | --- | --- | --- |
| a | а | /a/ | vowel |
| e | е | /e/ | vowel |
| æ | э | /ɛ/ | vowel |
| i | и | /i/ | vowel |
| o | о | /o/ | vowel |
| u | у | /u/ | vowel |
| b | б | /b/ | consonant |
| d | д | /d/ | consonant |
| f | ф | /f/ | consonant |
| g | г | /g/ | consonant |
| h | х | /x ~ h/ | consonant |
| j | ж / дж | /ʒ ~ dʒ/ | consonant |
| k | к | /k/ | consonant |
| l | л | /l/ | consonant |
| m | м | /m/ | consonant |
| n | н | /n/ | consonant |
| p | п | /p/ | consonant |
| r | р | /r/ | consonant |
| s | с | /s/ | consonant |
| t | т | /t/ | consonant |
| v | в | /v/ | consonant |
| z | з | /z/ | consonant |
| y | й | /j/ | consonant |
| š | ш | /ʃ/ | consonant |
| ś | щ | /ɕː/ | consonant |
| č | ч | /tɕ/ | consonant |

Forbidden active Latin letters: c, w.
Forbidden active Cyrillic letters: ь, Ь.
Keyboard input alias: § may be accepted as æ, but canonical output is æ.
Palatalization: ' after a consonant is retained as ' in CYR and is a modifier, not a separate letter.
LAT j is ambiguous toward Cyrillic Ж / ДЖ: use an explicit canonical dictionary surface when available; otherwise fail closed. CYR Ж or ДЖ maps back to LAT j.
Mixed-script Ganjaedi tokens are invalid. Do not silently replace æ/š/ś/č with ASCII lookalikes or English digraph spellings.

## Structured grammar and discourse map

Core grammar status: **CLOSED**. Open core slots: 0.

Root classes: N, V, Q, G; exactly one class per dictionary entry.

Neutral participant templates: V; S V; S V O; S V REL-X; S V O REL-X ....
Additional nominal participants use relation prefixes; the verb does not change for transitivity or argument count.

Relation inventory: mæ- in/inside; na- on/surface; ko- to/toward/goal/destination/endpoint; ot- from/source/origin/causal source/temporal start/since; po- along/through/path; tak- up to/limit/temporal until; sa- with/accompanier; lya- purpose/for use; ra- recipient/addressee/beneficiary; pro- about/topic; age- in front of/before/spatial before/temporal before; za- behind/after/spatial behind/temporal after; pas- near; ka- possessor/of; se- means/instrument/by means of.

Clause linker ki: relative = HEAD + (REL-)ki + CLAUSE; complement = V + ki + FINITE_CLAUSE; finite adverbial = REL-ki + FINITE_CLAUSE.

Reciprocal: sang-sam. Comparison standard: zen. Ability/permission: sak + V-in.

Default nonfinite/event nominal: V+in action/process noun; vowel-final V roots use the y-stem, e.g. go -> goyin.

Grammatical passive voice: absent; passive meanings are recast as active clauses.

Response/interjection G forms: ha, aha, ey, yo, ay, oy, ah, oh, uf, em, vau, opa. They are independent discourse words with no productive derivation, TAM, number, or agreement.
Repetition stays token-separated (yo, yo!; ha, ha!); the hyphen is not a repetition mark.
Pronunciation notes: yo /jo/; CYR йо; vau /ˈva.u/; the sequence au is not a newly licensed diphthong.

For the complete typed grammar and discourse contract fetch /ai/grammar.json or /ai/spec.json.

## Generation guardrails

- Choose lexical roots from the active dictionary.
- Preserve the dictionary root class; same spelling in another class is a separate entry.
- Apply only productive patterns explicitly present in the structured grammar contract.
- Use relation prefixes for additional nominal participants instead of inventing case endings or verb-valency morphology.
- Use V+in (or ROOT+yin after a vowel-final V root) for the default nonfinite/event-nominal construction.
- Use ki for licensed relative, finite-complement, and relation-marked finite-adverbial clauses.
- Use sang-sam as the general reciprocal referent; sa-sam means with self.
- Use zen for resemblance/comparison standard and mor/mos for degree.
- Use sak + V+in for ability or permission; do not substitute bo or šayad for ability.
- Preserve canonical non-ASCII Latin letters; do not anglicize spelling.
- Keep the apostrophe as the palatalization marker in both LAT and CYR Ganjaedi surfaces.
- Keep each Ganjaedi token in one script; mixed Latin/Cyrillic tokens are invalid.
- For LAT→CYR, prefer the explicit dictionary Cyrillic surface. Never guess whether Latin j maps to ж or дж.
- Validate output against orthography, dictionary classes, structured grammar, and adversarial checks before returning it.

## Forbidden inferences

- Do not introduce articles.
- Do not add subject agreement to verbs or noun agreement to adjectives.
- Do not interpret resultative -an/-n as simple past tense.
- Do not infer passive voice from a resultative form alone; grammatical passive voice is absent.
- Do not invent a universal noun-to-verb suffix; -on is not productive.
- Do not mark more than one unmarked primary object; additional nominal participants use relation prefixes.
- Do not use sa-sang as a general reciprocal; use sang-sam and apply the required relation prefix outside it.
- Do not treat ki as only an interrogative; it is also the active clause linker.
- Do not generate goin from go; vowel-final go uses the y-stem and therefore goyin.
- Do not replace zen with an invented English-like than particle.
- Do not replace æ with ae/e/a, š with sh, ś with shch, or č with ch in canonical Latin output.
- Do not use c or w as active Ganjaedi Latin letters.
- Do not generate Russian soft sign ь or Ь in canonical Ganjaedi CYR; palatalization is written with apostrophe.

## Reference generation algorithm

```text
root = LOOKUP_DICTIONARY(concept, required_class)
if root == NONE: return UNKNOWN_OR_PARAPHRASE
rule = LOOKUP_STRUCTURED_GRAMMAR(requested_operation)
if rule == NONE: return UNKNOWN_OR_PARAPHRASE
form = APPLY_RULE_WITH_ROOT_CLASS(rule, root)
if form == UNDEFINED: return UNKNOWN_OR_PARAPHRASE
if requested_script == CYR: form = EXPLICIT_CYR_SURFACE_OR_SAFE_TRANSLITERATION(form)
if transliteration_is_ambiguous: return LOOKUP_REQUIRED
ASSERT_SINGLE_SCRIPT_PER_TOKEN(form)
ASSERT_CANONICAL_ORTHOGRAPHY(form)
ASSERT_GRAMMAR_CONTRACT(form)
return form
```

## Data endpoints

- https://ganjaedi.pages.dev/ai/grammar.json — complete structured core grammar and discourse snapshot
- https://ganjaedi.pages.dev/ai/dictionary.json — complete active dictionary projection
- https://ganjaedi.pages.dev/ai/spec.json — top-level contract, policy, orthography, grammar, discourse, dictionary metadata, and evals
- https://ganjaedi.pages.dev/ai/full.md — bootstrap plus grammar/discourse snapshot, adversarial checks, and full dictionary in one document

