AI HTML COMPATIBILITY · GRAMMAR

Grammar, operators, and discourse.

Task-specific HTML projection generated from the same repository Canon as /ai/grammar.json.

AI / LLM / agent: this is the HTML compatibility representation generated from the same repository Canon as the raw machine endpoints. Do not infer conflicting rules from human-facing pages.

Canonical grammar projection

{
  "contract": "GANJAEDI_MACHINE_CONTRACT",
  "version": "1.5.0",
  "authority": "PRIMARY_REPOSITORY_CANON",
  "authoritativeRef": "main",
  "operators": {
    "contract": "GANJAEDI_OPERATOR_CONTRACT",
    "version": "1.2.0",
    "provenance": {
      "role": "PRIMARY_REPOSITORY_CANON",
      "authorityContract": "src/canon/authority.ts",
      "ownerRole": "OWNER_K0",
      "ownerGithub": "Filatotel",
      "repository": "Filatotel/Ganjaedi",
      "authoritativeRef": "main",
      "publicationEndpoint": "/ai/spec.json",
      "observedDate": "2026-09-25",
      "note": "Canonical repository data merged into Filatotel/Ganjaedi:main is the linguistic source of truth. Owner/K0 (Filatotel) is the sole product and Canon governance authority. Google Drive is non-normative development/history material."
    },
    "principle": "A written surface may have separately licensed free and bound operator modes. Space and hyphen are grammatically contrastive; shared spelling never licenses an unlisted mode.",
    "prosody": {
      "freeMode": {
        "separateToken": true,
        "separateProsodicWord": true,
        "independentStressDomain": true,
        "rule": "A free G operator is its own prosodic word. In fir yob or fir fir yob, every free fir and the following lexical word retain separate stress domains."
      },
      "boundMode": {
        "writtenWithHyphen": true,
        "separateProsodicWord": false,
        "prefixUnstressed": true,
        "rootKeepsCanonicalStress": true,
        "rule": "A bound prefix is unstressed and forms one prosodic word with its base. The lexical root keeps canonical first-syllable stress; the prefix never takes root stress."
      },
      "contrast": "SPACE = separate prosodic words / separate stress domains. HYPHEN = one bound morphological complex / prefix unstressed / stress remains on the lexical root.",
      "examples": [
        {
          "written": "saya",
          "analysis": "single N root 'shadow'",
          "stress": "SA-ya: root-initial stress"
        },
        {
          "written": "sa-ya",
          "analysis": "relation prefix sa- + pronoun ya",
          "stress": "sa-YA: prefix unstressed, stress remains on ya"
        },
        {
          "written": "fir yob",
          "analysis": "free fir AGAIN + V yob",
          "stress": "FIR + YOB: two stress domains"
        },
        {
          "written": "fir fir yob",
          "analysis": "emphatic free repetition + V yob",
          "stress": "FIR + FIR + YOB: three stress domains"
        },
        {
          "written": "fir-leg",
          "analysis": "bound fir- + N leg 'law': cross/overstep a normative boundary",
          "stress": "fir-LEG: one prosodic word"
        },
        {
          "written": "no dom",
          "analysis": "free no NO/NOT + N dom",
          "stress": "NO + DOM: two stress domains"
        },
        {
          "written": "no-dom",
          "analysis": "bound no- NON + N dom",
          "stress": "no-DOM: one prosodic word; no- unstressed"
        }
      ]
    },
    "modes": {
      "na": {
        "surface": "na",
        "free": {
          "class": "G",
          "role": "polar-question particle",
          "meaning": "marks a polar question",
          "pattern": "CLAUSE + na"
        },
        "bound": {
          "form": "na-",
          "operatorClass": "relation",
          "meaning": "on / surface",
          "target": "complete nominal referent"
        },
        "semanticRelationship": "homophonous licensed modes; the question particle and surface relation are not one compositional meaning"
      },
      "no": {
        "surface": "no",
        "free": {
          "class": "G",
          "role": "negation / absence",
          "meaning": "no / not / none / absence in syntax",
          "pattern": "free token before the negated predicate or nominal quantity"
        },
        "bound": {
          "form": "no-",
          "operatorClass": "derivational",
          "meaning": "NON-X / exclusion from category X / absence of property X",
          "target": "licensed N, Q, result-state and individually licensed G surfaces under the grammar contract"
        },
        "semanticRelationship": "shared negative/absence semantics, different syntactic and morphological modes"
      },
      "fir": {
        "surface": "fir",
        "free": {
          "class": "G",
          "role": "repetition operator",
          "meaning": "again / once more / repeat",
          "pattern": "fir + V",
          "emphaticReduplication": {
            "pattern": "fir fir + V",
            "meaning": "again and again / emphatic repetition",
            "exactCount": false,
            "writtenWithSpaces": true
          }
        },
        "bound": {
          "form": "fir-",
          "operatorClass": "path-event",
          "meaning": "redo / reconfigure / supersede or cross-over into a changed result; on N, cross/pass/overstep a boundary, domain, norm, or landmark represented by the noun",
          "targetClasses": [
            "N",
            "V"
          ],
          "preservesSelectedRootClass": true,
          "ordinaryMorphologyAfterDerivedStem": true,
          "classSemantics": {
            "N": "N -> N: crossing, passage, transfer, or overstepping with the N as the boundary/domain/norm/landmark; fir-leg therefore compositionally permits transgress/violate-law readings.",
            "V": "V -> V: redo, reconfigure, supersede, or carry the base event across into a changed result. The derived V then takes ordinary V morphology."
          },
          "productivityBoundary": "Ordinary fir- is productive only with N and V. It is not licensed on ordinary Q or arbitrary G surfaces.",
          "stackingBoundary": {
            "generalBoundStacking": false,
            "prohibitedWithoutSeparateCanon": [
              "fir-fir-V",
              "fir-of-V",
              "of-fir-V"
            ],
            "mixedFreeBoundExample": "fir fir-kolor is valid: free fir repeats the bound-derived V fir-kolor."
          },
          "specialObsceneMatrixException": {
            "contract": "GANJAEDI_OBSCENE_CONTRACT",
            "exactRootSurfaces": [
              "huk",
              "pizd",
              "šit",
              "yob"
            ],
            "licensedClasses": [
              "N",
              "V",
              "Q"
            ],
            "independentEntriesByClass": true,
            "failClosed": true,
            "rule": "The frozen obscene matrix keeps its already licensed fir- N/V/Q behavior as an explicit exception. This does not license ordinary fir-Q anywhere else."
          }
        },
        "semanticRelationship": "free mode repeats an event; bound mode derives redo/reconfiguration/supersession or crossing/overstepping and is not the free AGAIN reading"
      },
      "of": {
        "surface": "of",
        "free": {
          "class": "G",
          "role": "OFF state/operator",
          "meaning": "off / inactive / disconnected / outside active operation",
          "pattern": "SUBJECT + (be) + of"
        },
        "bound": {
          "form": "of-",
          "operatorClass": "path-event",
          "meaning": "off / away / leave the current support, path, contact, position or active field",
          "target": "V",
          "outputClass": "V",
          "ordinaryMorphologyAfterDerivedStem": true,
          "specialObsceneMatrixException": {
            "contract": "GANJAEDI_OBSCENE_CONTRACT",
            "exactStems": [
              "of-huk",
              "of-pizd",
              "of-yob"
            ],
            "additionalLexicalClasses": [
              "N",
              "Q"
            ],
            "independentEntriesByClass": true,
            "failClosed": true,
            "rule": "General of- remains V-targeting. Only the three listed obscene stems may additionally have matrix-licensed N and Q readings."
          }
        },
        "semanticRelationship": "shared OFF/AWAY semantics; free mode is a state/operator, bound mode derives a leaving/detachment event"
      }
    },
    "boundaries": {
      "firVsPar": "par- remains a relation prefix locating or directing with respect to an across/far-side nominal landmark. Ordinary fir- is a class-preserving N/V derivational operator for crossing/overstepping or redo/reconfiguration; the obscene matrix is the only explicit fir-Q exception.",
      "ofVsOt": "ot- marks a nominal source/origin landmark. of- derives an OFF/AWAY event and does not require a named source landmark.",
      "noVsBareVerb": "Bound no- remains prohibited directly on a bare V. Use free no for ordinary verbal negation; this operator contract does not relax the existing no- target restrictions.",
      "naHomophony": "Free na and bound na- are deliberately homophonous across modes; prosody and syntax distinguish the constructions, not a shared lexical meaning.",
      "obsceneFirExamples": [
        "fir-huk",
        "fir-pizd",
        "fir-šit",
        "fir-yob"
      ],
      "obsceneIdioms": "The four frozen obscene surfaces retain explicitly licensed matrix behavior, including Q readings where already frozen. That exception is fail-closed and never generalizes ordinary fir- to Q."
    }
  },
  "grammar": {
    "contract": "GANJAEDI_GRAMMAR_CONTRACT",
    "version": "1.5.0",
    "provenance": {
      "role": "PRIMARY_REPOSITORY_CANON",
      "authorityContract": "src/canon/authority.ts",
      "ownerRole": "OWNER_K0",
      "ownerGithub": "Filatotel",
      "repository": "Filatotel/Ganjaedi",
      "authoritativeRef": "main",
      "publicationEndpoint": "/ai/spec.json",
      "observedDate": "2026-09-25",
      "note": "Canonical repository data merged into Filatotel/Ganjaedi:main is the linguistic source of truth. Owner/K0 (Filatotel) is the sole product and Canon governance authority. Google Drive is non-normative development/history material."
    },
    "closure": {
      "coreGrammar": "CLOSED",
      "openCoreSlots": [],
      "futureVocabularyPolicy": "New aspectual/modal vocabulary may be added lexically through the ordinary root-intake gate without creating a new inflectional paradigm.",
      "deliberatelyAbsent": [
        "articles",
        "default inflectional noun case endings",
        "irregular verbs in the productive verb system",
        "universal productive N-to-V suffix",
        "English-style question inversion",
        "dummy do",
        "grammatical passive voice",
        "automatic passive meaning from resultative",
        "dedicated simple-past suffix distinct from ba",
        "productive grammatical agreement unless a construction explicitly defines it"
      ]
    },
    "rootClasses": {
      "classes": [
        "N",
        "V",
        "Q",
        "G"
      ],
      "exactlyOneClassPerEntry": true,
      "multiClassRootClass": false,
      "crossClassHomonyms": "Independent approved entries with the same written surface may exist in different classes; morphology follows only the selected entry class.",
      "ownerApprovedCrossClassSurfaces": [
        "huk",
        "pizd",
        "šit",
        "yob"
      ],
      "ownerApprovedCrossClassRule": "huk, pizd, šit, and yob each have separate N/V/Q entries and form the explicit frozen obscene matrix; they are homonymous surfaces, never one multi-class dictionary entry.",
      "ordinaryCrossClassPolicy": "Ordinary same-surface identities are admitted case by case. N+V families may share a semantic nucleus; accidental N+G homonyms may exist when approved. No morphology or capabilities transfer between classes merely because the spelling is shared.",
      "pizdaRule": "pizd is the N root for the female-genital sense. Frozen obscene pizda behavior belongs to the explicit obscene matrix and must not be generalized from ordinary Q nominalization or V agent morphology.",
      "newRootConstraints": {
        "V": "New bare V roots may not end in a.",
        "Q": "Q is reserved for lexical primitive qualities. A final-a Q candidate is OWNER_REVIEW; do not invent an extra final-a rule around the productive Q+a/~Q+ya quality nominalizer.",
        "N": "Any legal final segment.",
        "G": "Any legal final segment."
      }
    },
    "morphology": {
      "compounds": {
        "delimiter": "-",
        "headDirection": "right",
        "rule": "In X-Y, Y is the semantic head and X narrows domain, type, material, function, or culture.",
        "ordinaryMaxHyphens": 3,
        "examples": [
          "rap-bit",
          "dab-trak",
          "ganja-boška"
        ]
      },
      "negativePrefix": {
        "form": "no-",
        "role": "productive derivational negative/privative prefix",
        "writtenWithHyphen": true,
        "relationPrefix": false,
        "contrastWithFreeNo": "Free no is written as a separate token and negates a predicate, TAM/copula frame, or nominal quantity. no-X is one morphological complex meaning non-X, category exclusion, or absence of the base property.",
        "targets": {
          "noun": "Productive on N bases/compounds; the result remains nominal and means a non-member or exclusion from the base category.",
          "quality": "Productive directly on bare Q bases. Bare Q already carries the quality reading, so no-Q is the negative/privative quality; Q+a/~Q+ya is instead a quality/state nominalization.",
          "bareVerb": "PROHIBITED. Negate a bare V syntactically with free no: no rab and no šit, never no-rab or no-šit/V.",
          "resultative": "Licensed on a completed/result-state V surface when a non-X state/category reading is intended, e.g. mar -> maran -> no-maran and šit -> šitan -> no-šitan.",
          "grammatical": "Not freely productive on arbitrary G forms; individual G complexes require explicit Canon licensing."
        },
        "examples": [
          "no-admi",
          "no-zind",
          "no-maran",
          "no-šit",
          "no-šitan"
        ],
        "obsceneLayerSource": "GANJAEDI_OBSCENE_CONTRACT negativeLayer",
        "licensedGComplexes": [
          {
            "form": "no-zen",
            "meaning": "no difference / indifferent / distinction not relevant to the experiencer",
            "pattern": "SUBJECT + (be) + no-zen (+ pro-X)",
            "examples": [
              "ya no-zen",
              "yus no-zen",
              "ya no-zen pro-ye"
            ],
            "spacedContrast": "no zen is two syntactic tokens and is not the indifference construction"
          },
          {
            "form": "no-huk",
            "meaning": "fuck-all / nothing at all / zero amount or content / not at all as an emphatic obscene minimizer",
            "pattern": "LEXICALIZED G minimizer in a licensed zero/nothing context",
            "examples": [
              "no-huk"
            ],
            "spacedContrast": "no huk is free no plus a selected huk lexical entry and is not automatically the lexicalized no-huk/G idiom",
            "homonymy": "The G idiom is a separately licensed analysis and may coexist with regular class-selected no-huk/N or no-huk/Q derivation."
          }
        ]
      },
      "obsceneMatrix": {
        "matrixRootSurfaces": [
          "huk",
          "pizd",
          "šit",
          "yob"
        ],
        "failClosedStemLicensing": true,
        "relationShapedOperatorsLexicalizeOnlyInsideAcceptedMatrix": true,
        "languageWideArbitraryRelVOrRelQDerivation": false,
        "ordinaryGrammarAfterLicensedStem": true,
        "derivationalEventOperator": {
          "form": "of-",
          "meaning": "off / away / leave the current support, path, contact, position or active field",
          "writtenWithHyphen": true,
          "relationPrefix": false,
          "productiveOutsideAcceptedObsceneFamilies": true,
          "generalizedBy": "GANJAEDI_OPERATOR_CONTRACT modes.of.bound"
        },
        "controlledSyncretism": {
          "bareRoot": "ROOT may be separate N/V/Q homonymous entries.",
          "plusA": "Inside the frozen obscene matrix, existing ROOT+a analyses remain explicit licensed matrix behavior; ordinary Q outside this exception uses +a/~+ya as quality/state nominalization.",
          "plusLi": "ROOT+li may be N relational adjective or V relational adjective.",
          "plusLa": "ROOT+la may be N domain/manner adverb, V manner adverb, or ordinary Q manner adverb when the selected class licenses it.",
          "disambiguation": "Lexical class, syntax, semantics, and context choose the analysis.",
          "resultativeBoundary": "V+an remains the completed/result-state and is not collapsed into Q or +li readings."
        },
        "externalRepeatOperator": {
          "form": "fir",
          "class": "G",
          "pattern": "fir + V",
          "emphaticPattern": "fir fir + V",
          "writtenWithSpace": true,
          "boundCounterpart": "fir-",
          "boundCounterpartClass": "path-event",
          "boundCounterpartMeaning": "redo/reconfigure/supersede or cross/overstep into a changed result/domain",
          "generalizedBy": "GANJAEDI_OPERATOR_CONTRACT modes.fir",
          "ordinaryBoundTargetClasses": [
            "N",
            "V"
          ],
          "obsceneMatrixExceptionClasses": [
            "N",
            "V",
            "Q"
          ],
          "boundPreservesSelectedRootClass": true
        },
        "pathEventOperators": {
          "sourceContract": "GANJAEDI_OPERATOR_CONTRACT",
          "forms": [
            "fir-",
            "of-"
          ],
          "relationPrefix": false
        }
      },
      "vala": {
        "pattern": "X-vala",
        "meaning": "thing/entity/device associated with, intended for, or used for X; with a V root, may denote a device for performing X",
        "example": "smok-vala"
      },
      "verbs": {
        "productiveForEveryVRoot": true,
        "irregularVerbs": false,
        "consonantFinal": {
          "derivationalStem": "ROOT",
          "agent": "ROOT+a",
          "actionProcess": "ROOT+in",
          "relationalAdjective": "ROOT+li",
          "mannerAdverb": "ROOT+la",
          "imperative": "ROOT+i",
          "resultative": "ROOT+an",
          "exampleFamily": [
            "rab",
            "raba",
            "rabin",
            "rabli",
            "rabla",
            "rabi",
            "raban"
          ]
        },
        "vowelFinal": {
          "suffixSpecificGlide": true,
          "agent": "ROOT+ya",
          "actionProcess": "ROOT+yin",
          "relationalAdjective": "ROOT+li",
          "mannerAdverb": "ROOT+la",
          "imperative": "ROOT+y",
          "resultative": "ROOT+n",
          "exampleFamily": [
            "si",
            "siya",
            "siyin",
            "sili",
            "sila",
            "siy",
            "sin"
          ],
          "goExample": [
            "go",
            "goya",
            "goyin",
            "goli",
            "gola",
            "goy",
            "gon"
          ],
          "prohibitedGenericYStemForms": [
            "siyli",
            "siyla",
            "goyli",
            "goyla"
          ]
        },
        "yFinalClass": "consonant-final because y = /j/",
        "respectfulImperative": "IMPERATIVE+s",
        "resultativeSemantics": {
          "meaning": "completed/result state",
          "simplePast": false,
          "automaticPassive": false
        },
        "nonfinite": {
          "pattern": "V+in action/process noun",
          "vowelFinalPattern": "ROOT+yin",
          "role": "default nonfinite/event-nominal construction",
          "preservesComplements": true,
          "examples": [
            "ya vant goyin",
            "ya nid goyin",
            "ya sak goyin",
            "ya stop smokin",
            "lya-rabin"
          ],
          "separateInfinitiveMorphology": false
        }
      },
      "nouns": {
        "relationalAdjective": "N+li",
        "mannerStyleDomainAdverb": "N+la where semantically interpretable",
        "stripFinalVowelBeforeSuffix": false,
        "examples": [
          "ganjali",
          "ganjala",
          "muzikli",
          "muzikla"
        ],
        "productiveNtoV": false
      },
      "qualities": {
        "baseClass": "Q",
        "bareQuality": "Bare Q is the adjective/quality predicate and is invariant in attributive or predicative use.",
        "mannerAdverb": "Q+la",
        "qualityStateNominalization": {
          "consonantFinal": "Q+a",
          "vowelFinal": "Q+ya",
          "role": "quality/state noun; not the ordinary adjective form",
          "examples": [
            "red -> reda",
            "gud -> guda",
            "zind -> zinda"
          ]
        },
        "comparative": "mor + Q",
        "superlative": "mos + Q",
        "negativePrivative": "no-Q",
        "ordinaryFirQ": false,
        "admissionPolicy": "Admit Q only for a genuine lexical primitive quality that is not naturally and sufficiently represented by a more basic N/V family."
      },
      "nounNumber": {
        "underlyingPlural": "/m/",
        "vowelFinal": "-m",
        "consonantFinal": "-im",
        "yFinal": "-im",
        "palatalizedConsonantFinal": "-im",
        "writtenSolid": true,
        "stemChange": false,
        "stressShift": false,
        "exactCardinalGreaterThanOneBlocksPlural": true,
        "ekUsesSingular": true,
        "examples": [
          "guru -> gurum",
          "frend -> frendim",
          "dijey -> dijeyim",
          "dva frend",
          "tri trak"
        ],
        "morphologicalOrder": "ROOT -> DERIVATION/COMPOUND -> NUMBER; relation prefixes scope outside the complete number-marked noun",
        "scopedExamples": [
          "rab -> raba -> rabam",
          "sa-frendim",
          "ko-mæ-domim"
        ]
      }
    },
    "pronouns": {
      "firstPerson": {
        "singular": "ya",
        "pluralInclusive": "va",
        "pluralExclusive": "vi"
      },
      "secondPerson": {
        "singular": {
          "derogatory": "u",
          "neutral": "yu",
          "respectful": "yus"
        },
        "plural": {
          "derogatory": "um",
          "neutral": "yum",
          "respectful": "yums"
        }
      },
      "thirdPerson": {
        "singular": {
          "derogatory": "dau",
          "neutral": "da",
          "respectful": "das"
        },
        "plural": {
          "derogatory": "damu",
          "neutral": "dam",
          "respectful": "dams"
        }
      },
      "reflexive": {
        "operator": "sam",
        "pattern": "PRONOUN-sam",
        "examples": [
          "ya-sam",
          "yu-sam",
          "da-sam",
          "dam-sam"
        ],
        "relationPrefixScopesOutside": true
      },
      "reciprocal": {
        "form": "sang-sam",
        "meaning": "each other / one another",
        "invariant": true,
        "nominalRole": true,
        "relationPrefixesAllowed": true,
        "examples": [
          "dam si sang-sam",
          "dam giv kitab ra-sang-sam",
          "dam sæy pro-sang-sam",
          "dam rab sa-sang-sam"
        ],
        "contrast": "sa-sam means WITH SELF and is not the general reciprocal form"
      }
    },
    "determinersAndQuantifiers": {
      "demonstratives": {
        "proximal": "ye",
        "distal": "vo",
        "invariant": true,
        "numberMarkedOnNoun": true
      },
      "quantifiers": {
        "som": "some / a certain / some amount or number",
        "eni": "any / whichever / any one",
        "no": "no / none / not any",
        "ol": "all",
        "har": "every / each",
        "countBehavior": "har selects singular; ol selects plural"
      }
    },
    "relations": {
      "realization": "productive prefixes before a complete nominal referent",
      "inventoryClosed": true,
      "derivationalNoPrefixExcluded": "no- is a derivational negative/privative prefix, not a relation prefix.",
      "pathEventOperatorIdsExcluded": [
        "fir-",
        "of-"
      ],
      "pathEventOperatorBoundary": "fir- and of- are bound operators outside the closed relation-prefix inventory; ordinary fir- preserves N or V class only, while the frozen obscene matrix supplies its explicit fail-closed Q exception; of- is ordinarily V-targeting with its own explicit matrix exception.",
      "prefixes": [
        {
          "form": "mæ-",
          "meanings": [
            "in",
            "inside"
          ]
        },
        {
          "form": "na-",
          "meanings": [
            "on",
            "surface"
          ]
        },
        {
          "form": "ko-",
          "meanings": [
            "to",
            "toward",
            "goal",
            "destination",
            "endpoint"
          ]
        },
        {
          "form": "ot-",
          "meanings": [
            "from",
            "source",
            "origin",
            "causal source",
            "temporal start",
            "since"
          ]
        },
        {
          "form": "po-",
          "meanings": [
            "along",
            "through",
            "path"
          ]
        },
        {
          "form": "tak-",
          "meanings": [
            "up to",
            "limit",
            "temporal until"
          ]
        },
        {
          "form": "sa-",
          "meanings": [
            "with",
            "accompanier"
          ]
        },
        {
          "form": "lya-",
          "meanings": [
            "purpose",
            "for use"
          ]
        },
        {
          "form": "ra-",
          "meanings": [
            "recipient",
            "addressee",
            "beneficiary"
          ]
        },
        {
          "form": "pro-",
          "meanings": [
            "about",
            "topic"
          ]
        },
        {
          "form": "age-",
          "meanings": [
            "in front of",
            "before",
            "spatial before",
            "temporal before"
          ]
        },
        {
          "form": "za-",
          "meanings": [
            "behind",
            "after",
            "spatial behind",
            "temporal after"
          ]
        },
        {
          "form": "pas-",
          "meanings": [
            "near"
          ]
        },
        {
          "form": "ka-",
          "meanings": [
            "possessor",
            "of"
          ]
        },
        {
          "form": "se-",
          "meanings": [
            "means",
            "instrument",
            "by means of"
          ]
        },
        {
          "form": "pod-",
          "meanings": [
            "under",
            "below",
            "beneath",
            "from underneath"
          ]
        },
        {
          "form": "par-",
          "meanings": [
            "across",
            "over",
            "to far side"
          ]
        }
      ],
      "stacking": {
        "productive": true,
        "scopeRule": "narrower/local relation stands closer to the root",
        "examples": [
          "ko-mæ-X",
          "ot-mæ-X",
          "ko-na-X",
          "ot-na-X"
        ]
      }
    },
    "syntax": {
      "neutralWordOrder": "SVO",
      "reorderForFocusContrastRhythm": true,
      "reorderCondition": "semantic roles must remain recoverable",
      "valency": {
        "separateVerbValencyMorphology": false,
        "neutralTemplates": [
          "V",
          "S V",
          "S V O",
          "S V REL-X",
          "S V O REL-X ..."
        ],
        "unmarkedSubject": true,
        "maxUnmarkedPrimaryObjects": 1,
        "additionalNominalParticipants": "relation-marked with productive relation prefixes",
        "verbChangesWithTransitivityOrArgumentCount": false,
        "lexicalArgumentVsAdjunctMarkedByGrammar": false,
        "dummySubjectRequired": false,
        "examples": [
          "ya si dom",
          "ya go ko-dom",
          "ya giv kitab ra-frend",
          "ya bring kitab ra-frend",
          "ya rab sa-frend",
          "ya sæy pro-muzik"
        ]
      },
      "negation": {
        "particle": "no",
        "writtenSeparately": true,
        "neutralOrder": "SUBJECT + no + (TAM/COPULA) + PREDICATE + complements",
        "nominalQuantifierPattern": "no + N = no/none/not any N; this is two tokens and differs from no-N",
        "bareVerbRule": "Bare V negation always uses free no; no-V is prohibited",
        "negativeQuestionPattern": "SUBJECT + no + (TAM/COPULA) + PREDICATE + complements + na",
        "derivationalContrast": "no X negates an assertion or quantity; no-X is the morphological negative/privative complex defined under morphology.negativePrefix",
        "examples": [
          "ya no rab",
          "ya no ba rab",
          "ya no sak goyin",
          "no frend kam",
          "yu no rab na"
        ]
      },
      "questions": {
        "finalParticle": "na",
        "inversion": false,
        "dummyDo": false,
        "whInSitu": true,
        "whForms": {
          "kan": "who",
          "lan": "what",
          "fan": "where",
          "kab": "when",
          "kak": "how",
          "ki": "which / what kind",
          "skok": "how much / how many",
          "lya-lan": "purpose why / what for",
          "lan-meyk": "causal why / for what reason"
        },
        "relationPrefixesCombineWithWh": true,
        "examples": [
          "yu rab na",
          "yu si lan na",
          "ko-kan",
          "ot-fan",
          "se-lan"
        ]
      },
      "clauseLinking": {
        "linker": "ki",
        "interrogativeMeaning": "which / what kind",
        "relative": {
          "pattern": "HEAD + (REL-)ki + CLAUSE",
          "headRepeatedInsideClause": false,
          "examples": [
            "admi ki ba giv kitab ra-ya",
            "kitab ki ya ba rid",
            "admi ra-ki ya ba giv kitab",
            "tema pro-ki va sæy"
          ]
        },
        "finiteComplement": {
          "pattern": "V + ki + FINITE_CLAUSE",
          "examples": [
            "ya nou ki da ba liv",
            "ya tink ki da bu kam",
            "ya sæy ki va bu go"
          ]
        },
        "finiteAdverbial": {
          "pattern": "REL-ki + FINITE_CLAUSE",
          "attestedCoreRelations": [
            "age-",
            "za-",
            "ot-",
            "tak-"
          ],
          "readings": {
            "age-ki": "before P",
            "za-ki": "after P",
            "ot-ki": "because/from the fact that P",
            "tak-ki": "until P"
          }
        },
        "concessive": {
          "dedicatedSubordinator": false,
          "defaultPattern": "P, a Q",
          "meaning": "ordinary contrast coordination supplies concessive meaning"
        }
      },
      "conditional": {
        "if": "if",
        "then": "to",
        "thenOptionalWhenClear": true,
        "realOpen": "if P, (to) Q",
        "hypotheticalCounterfactual": "if S bo P, (to) S bo P"
      },
      "passive": {
        "grammaticalPassiveVoice": false,
        "defaultStrategy": "recast as an active clause",
        "unknownOrIrrelevantAgent": "use an indefinite subject when needed",
        "resultativeIsPassive": false
      }
    },
    "comparison": {
      "adjectiveChangesForDegree": false,
      "comparativeOperator": "mor",
      "superlativeOperator": "mos",
      "standardOperator": "zen",
      "resemblancePattern": "A zen B",
      "comparativePattern": "A mor Q zen B",
      "indifferenceComplex": {
        "form": "no-zen",
        "meaning": "no difference / indifferent / distinction not relevant",
        "derivedWithNegativePrefix": true,
        "notEquivalentToSpacedNoZen": true,
        "examples": [
          "ya no-zen",
          "yus no-zen",
          "ya no-zen pro-ye"
        ]
      },
      "examples": [
        "mor gud",
        "mos gud",
        "ye dom mor gud zen vo dom"
      ]
    },
    "tamAspectModality": {
      "copula": {
        "neutralPresentZeroCopulaAllowed": true,
        "explicitPresentNonpast": "be"
      },
      "temporalFrames": {
        "present": "unmarked",
        "past": "ba",
        "future": "bu",
        "irrealisConditional": "bo",
        "composeWithResultative": true
      },
      "aspect": {
        "neutral": "bare V",
        "currentNow": "ab + V",
        "continuativeStill": "abi + V",
        "completedResultative": "V-an / V-n",
        "inceptive": "start + V-in",
        "cessative": "stop + V-in",
        "repetitiveAgain": "fir + V",
        "emphaticRepetitive": "fir fir + V",
        "habitualGeneral": "bare V with context",
        "always": "sada + V",
        "sometimesEver": "kabi + V",
        "separateInflectionalAspectParadigm": false
      },
      "modality": {
        "volition": "vant + V-in",
        "necessityObligation": "nid + V-in",
        "abilityPermission": "sak + V-in",
        "epistemicPossibility": "šayad + CLAUSE",
        "irrealisWould": "bo + PREDICATE",
        "positiveRecommendation": "gud ki CLAUSE",
        "negativeRecommendation": "bæd ki CLAUSE",
        "command": "IMPERATIVE",
        "prohibition": "no + IMPERATIVE",
        "separateInflectionalModalParadigm": false,
        "examples": [
          "ya vant goyin",
          "ya nid goyin",
          "ya sak goyin",
          "ya ba sak goyin",
          "ya bu sak goyin",
          "ya bo sak goyin",
          "ya sak goyin na",
          "šayad da bu kam",
          "gud ki yu čil",
          "no goy"
        ]
      }
    },
    "numerals": {
      "digits": {
        "zero": 0,
        "ek": 1,
        "dva": 2,
        "tri": 3,
        "čat": 4,
        "panč": 5,
        "siks": 6,
        "sat": 7,
        "eyt": 8,
        "nayn": 9,
        "dos": 10
      },
      "decadesSuffix": "-is",
      "nonRound11to99": "DECADE-UNIT",
      "hundred": "sto",
      "scales": {
        "hazar": 1000,
        "milion": 1000000,
        "bilion": 1000000000,
        "trilion": 1000000000000
      },
      "ordinals": {
        "suffix": "-va",
        "irregularForms": false,
        "compoundRule": "attach -va only to the rightmost non-zero numeral element"
      },
      "fractionRatioPercent": {
        "operator": "per",
        "fractionOrRatioPattern": "A per B",
        "percentPattern": "A per sto"
      }
    },
    "requiredDictionaryEntries": [
      [
        "ki",
        "G"
      ],
      [
        "sam",
        "G"
      ],
      [
        "sang",
        "G"
      ],
      [
        "zen",
        "G"
      ],
      [
        "mor",
        "G"
      ],
      [
        "mos",
        "G"
      ],
      [
        "ab",
        "G"
      ],
      [
        "abi",
        "G"
      ],
      [
        "fir",
        "G"
      ],
      [
        "of",
        "G"
      ],
      [
        "sada",
        "G"
      ],
      [
        "kabi",
        "G"
      ],
      [
        "šayad",
        "G"
      ],
      [
        "bo",
        "G"
      ],
      [
        "a",
        "G"
      ],
      [
        "no",
        "G"
      ],
      [
        "vant",
        "V"
      ],
      [
        "nid",
        "V"
      ],
      [
        "sak",
        "V"
      ],
      [
        "start",
        "V"
      ],
      [
        "stop",
        "V"
      ],
      [
        "gud",
        "Q"
      ],
      [
        "bæd",
        "Q"
      ],
      [
        "go",
        "V"
      ],
      [
        "huk",
        "N"
      ],
      [
        "huk",
        "V"
      ],
      [
        "huk",
        "Q"
      ],
      [
        "pizd",
        "N"
      ],
      [
        "pizd",
        "V"
      ],
      [
        "pizd",
        "Q"
      ],
      [
        "šit",
        "N"
      ],
      [
        "šit",
        "V"
      ],
      [
        "šit",
        "Q"
      ],
      [
        "yob",
        "N"
      ],
      [
        "yob",
        "V"
      ],
      [
        "yob",
        "Q"
      ]
    ],
    "operators": {
      "contract": "GANJAEDI_OPERATOR_CONTRACT",
      "version": "1.2.0",
      "provenance": {
        "role": "PRIMARY_REPOSITORY_CANON",
        "authorityContract": "src/canon/authority.ts",
        "ownerRole": "OWNER_K0",
        "ownerGithub": "Filatotel",
        "repository": "Filatotel/Ganjaedi",
        "authoritativeRef": "main",
        "publicationEndpoint": "/ai/spec.json",
        "observedDate": "2026-09-25",
        "note": "Canonical repository data merged into Filatotel/Ganjaedi:main is the linguistic source of truth. Owner/K0 (Filatotel) is the sole product and Canon governance authority. Google Drive is non-normative development/history material."
      },
      "principle": "A written surface may have separately licensed free and bound operator modes. Space and hyphen are grammatically contrastive; shared spelling never licenses an unlisted mode.",
      "prosody": {
        "freeMode": {
          "separateToken": true,
          "separateProsodicWord": true,
          "independentStressDomain": true,
          "rule": "A free G operator is its own prosodic word. In fir yob or fir fir yob, every free fir and the following lexical word retain separate stress domains."
        },
        "boundMode": {
          "writtenWithHyphen": true,
          "separateProsodicWord": false,
          "prefixUnstressed": true,
          "rootKeepsCanonicalStress": true,
          "rule": "A bound prefix is unstressed and forms one prosodic word with its base. The lexical root keeps canonical first-syllable stress; the prefix never takes root stress."
        },
        "contrast": "SPACE = separate prosodic words / separate stress domains. HYPHEN = one bound morphological complex / prefix unstressed / stress remains on the lexical root.",
        "examples": [
          {
            "written": "saya",
            "analysis": "single N root 'shadow'",
            "stress": "SA-ya: root-initial stress"
          },
          {
            "written": "sa-ya",
            "analysis": "relation prefix sa- + pronoun ya",
            "stress": "sa-YA: prefix unstressed, stress remains on ya"
          },
          {
            "written": "fir yob",
            "analysis": "free fir AGAIN + V yob",
            "stress": "FIR + YOB: two stress domains"
          },
          {
            "written": "fir fir yob",
            "analysis": "emphatic free repetition + V yob",
            "stress": "FIR + FIR + YOB: three stress domains"
          },
          {
            "written": "fir-leg",
            "analysis": "bound fir- + N leg 'law': cross/overstep a normative boundary",
            "stress": "fir-LEG: one prosodic word"
          },
          {
            "written": "no dom",
            "analysis": "free no NO/NOT + N dom",
            "stress": "NO + DOM: two stress domains"
          },
          {
            "written": "no-dom",
            "analysis": "bound no- NON + N dom",
            "stress": "no-DOM: one prosodic word; no- unstressed"
          }
        ]
      },
      "modes": {
        "na": {
          "surface": "na",
          "free": {
            "class": "G",
            "role": "polar-question particle",
            "meaning": "marks a polar question",
            "pattern": "CLAUSE + na"
          },
          "bound": {
            "form": "na-",
            "operatorClass": "relation",
            "meaning": "on / surface",
            "target": "complete nominal referent"
          },
          "semanticRelationship": "homophonous licensed modes; the question particle and surface relation are not one compositional meaning"
        },
        "no": {
          "surface": "no",
          "free": {
            "class": "G",
            "role": "negation / absence",
            "meaning": "no / not / none / absence in syntax",
            "pattern": "free token before the negated predicate or nominal quantity"
          },
          "bound": {
            "form": "no-",
            "operatorClass": "derivational",
            "meaning": "NON-X / exclusion from category X / absence of property X",
            "target": "licensed N, Q, result-state and individually licensed G surfaces under the grammar contract"
          },
          "semanticRelationship": "shared negative/absence semantics, different syntactic and morphological modes"
        },
        "fir": {
          "surface": "fir",
          "free": {
            "class": "G",
            "role": "repetition operator",
            "meaning": "again / once more / repeat",
            "pattern": "fir + V",
            "emphaticReduplication": {
              "pattern": "fir fir + V",
              "meaning": "again and again / emphatic repetition",
              "exactCount": false,
              "writtenWithSpaces": true
            }
          },
          "bound": {
            "form": "fir-",
            "operatorClass": "path-event",
            "meaning": "redo / reconfigure / supersede or cross-over into a changed result; on N, cross/pass/overstep a boundary, domain, norm, or landmark represented by the noun",
            "targetClasses": [
              "N",
              "V"
            ],
            "preservesSelectedRootClass": true,
            "ordinaryMorphologyAfterDerivedStem": true,
            "classSemantics": {
              "N": "N -> N: crossing, passage, transfer, or overstepping with the N as the boundary/domain/norm/landmark; fir-leg therefore compositionally permits transgress/violate-law readings.",
              "V": "V -> V: redo, reconfigure, supersede, or carry the base event across into a changed result. The derived V then takes ordinary V morphology."
            },
            "productivityBoundary": "Ordinary fir- is productive only with N and V. It is not licensed on ordinary Q or arbitrary G surfaces.",
            "stackingBoundary": {
              "generalBoundStacking": false,
              "prohibitedWithoutSeparateCanon": [
                "fir-fir-V",
                "fir-of-V",
                "of-fir-V"
              ],
              "mixedFreeBoundExample": "fir fir-kolor is valid: free fir repeats the bound-derived V fir-kolor."
            },
            "specialObsceneMatrixException": {
              "contract": "GANJAEDI_OBSCENE_CONTRACT",
              "exactRootSurfaces": [
                "huk",
                "pizd",
                "šit",
                "yob"
              ],
              "licensedClasses": [
                "N",
                "V",
                "Q"
              ],
              "independentEntriesByClass": true,
              "failClosed": true,
              "rule": "The frozen obscene matrix keeps its already licensed fir- N/V/Q behavior as an explicit exception. This does not license ordinary fir-Q anywhere else."
            }
          },
          "semanticRelationship": "free mode repeats an event; bound mode derives redo/reconfiguration/supersession or crossing/overstepping and is not the free AGAIN reading"
        },
        "of": {
          "surface": "of",
          "free": {
            "class": "G",
            "role": "OFF state/operator",
            "meaning": "off / inactive / disconnected / outside active operation",
            "pattern": "SUBJECT + (be) + of"
          },
          "bound": {
            "form": "of-",
            "operatorClass": "path-event",
            "meaning": "off / away / leave the current support, path, contact, position or active field",
            "target": "V",
            "outputClass": "V",
            "ordinaryMorphologyAfterDerivedStem": true,
            "specialObsceneMatrixException": {
              "contract": "GANJAEDI_OBSCENE_CONTRACT",
              "exactStems": [
                "of-huk",
                "of-pizd",
                "of-yob"
              ],
              "additionalLexicalClasses": [
                "N",
                "Q"
              ],
              "independentEntriesByClass": true,
              "failClosed": true,
              "rule": "General of- remains V-targeting. Only the three listed obscene stems may additionally have matrix-licensed N and Q readings."
            }
          },
          "semanticRelationship": "shared OFF/AWAY semantics; free mode is a state/operator, bound mode derives a leaving/detachment event"
        }
      },
      "boundaries": {
        "firVsPar": "par- remains a relation prefix locating or directing with respect to an across/far-side nominal landmark. Ordinary fir- is a class-preserving N/V derivational operator for crossing/overstepping or redo/reconfiguration; the obscene matrix is the only explicit fir-Q exception.",
        "ofVsOt": "ot- marks a nominal source/origin landmark. of- derives an OFF/AWAY event and does not require a named source landmark.",
        "noVsBareVerb": "Bound no- remains prohibited directly on a bare V. Use free no for ordinary verbal negation; this operator contract does not relax the existing no- target restrictions.",
        "naHomophony": "Free na and bound na- are deliberately homophonous across modes; prosody and syntax distinguish the constructions, not a shared lexical meaning.",
        "obsceneFirExamples": [
          "fir-huk",
          "fir-pizd",
          "fir-šit",
          "fir-yob"
        ],
        "obsceneIdioms": "The four frozen obscene surfaces retain explicitly licensed matrix behavior, including Q readings where already frozen. That exception is fail-closed and never generalizes ordinary fir- to Q."
      }
    }
  },
  "discourse": {
    "contract": "GANJAEDI_DISCOURSE_CONTRACT",
    "version": "1.0.0",
    "authority": "PRIMARY_REPOSITORY_CANON",
    "responseAndInterjection": {
      "rootClass": "G",
      "syntacticStatus": "independent discourse words",
      "morphology": {
        "productiveDerivation": false,
        "tam": false,
        "number": false,
        "agreement": false
      },
      "placement": [
        "standalone",
        "clause-initial",
        "clause-final"
      ],
      "repetition": {
        "allowed": true,
        "ordinarySurface": "repeat as separate tokens, optionally comma-separated",
        "examples": [
          "yo, yo!",
          "ha, ha!"
        ],
        "hyphenRule": "Do not use the morphological hyphen merely to mark repetition."
      },
      "pronunciationNotes": {
        "yo": "/jo/; CYR йо",
        "vau": "/ˈva.u/; the sequence au is not a newly licensed diphthong"
      },
      "forms": [
        {
          "form": "ha",
          "cyrillic": "ха",
          "function": "yes / yeah / brief agreement"
        },
        {
          "form": "aha",
          "cyrillic": "аха",
          "function": "aha / got it / realization"
        },
        {
          "form": "ey",
          "cyrillic": "ей",
          "function": "hey / attention call"
        },
        {
          "form": "yo",
          "cyrillic": "йо",
          "function": "yo / greeting / rap-street call"
        },
        {
          "form": "ay",
          "cyrillic": "ай",
          "function": "ow / ouch / sharp reaction"
        },
        {
          "form": "oy",
          "cyrillic": "ой",
          "function": "oh / oops / startled reaction"
        },
        {
          "form": "ah",
          "cyrillic": "ах",
          "function": "ah / realization / pleasure / admiration"
        },
        {
          "form": "oh",
          "cyrillic": "ох",
          "function": "oh / surprise / regret"
        },
        {
          "form": "uf",
          "cyrillic": "уф",
          "function": "phew / relief / fatigue"
        },
        {
          "form": "em",
          "cyrillic": "ем",
          "function": "um / hesitation"
        },
        {
          "form": "vau",
          "cyrillic": "вау",
          "function": "wow / strong surprise / admiration"
        },
        {
          "form": "opa",
          "cyrillic": "опа",
          "function": "whoa / there we go / sudden playful reaction"
        }
      ]
    },
    "provenance": {
      "role": "PRIMARY_REPOSITORY_CANON",
      "authorityContract": "src/canon/authority.ts",
      "ownerRole": "OWNER_K0",
      "ownerGithub": "Filatotel",
      "repository": "Filatotel/Ganjaedi",
      "authoritativeRef": "main",
      "publicationEndpoint": "/ai/spec.json",
      "observedDate": "2026-09-25",
      "note": "Canonical repository data merged into Filatotel/Ganjaedi:main is the linguistic source of truth. Owner/K0 (Filatotel) is the sole product and Canon governance authority. Google Drive is non-normative development/history material."
    }
  }
}