Any honest description of Yapiri has to begin with a confession and a clarification. The confession: Yapiri is not entirely diacritic-free. The clarification: where it does use diacritics, it uses them for exactly the right reasons — reasons that no standalone letter could serve. Understanding this distinction is the key to understanding what Yapiri is, and what it is trying to do for Kokborok.

Let us go through it piece by piece: the vowels first, then the tone mark, then the reduplication mark. Each tells a different part of the same story.


The Abugida Problem

To understand Yapiri's vowel design, you first need to understand what it is departing from. Most scripts used historically for Kokborok — Bengali, Devanagari, and the Aima script — are abugidas. In an abugida, every consonant carries a built-in default vowel. Other vowels are not written as letters; they are written as small marks attached to the consonant — above it, below it, or beside it. The vowel is not a letter. It is a modification of a letter.

This is not a flaw in abugidas as such. For Sanskrit, the language that shaped most of the scripts of the Indian subcontinent, this system is quite elegant: Sanskrit syllables are overwhelmingly consonant-led, and vowels are often predictable from context. The abugida model fits Sanskrit well.

But Kokborok is not Sanskrit. It belongs to the Tibeto-Burman family, not the Indo-Aryan one. Its vowel system is phonemically rich and its vowels are not predictable. Writing Kokborok in an abugida imports a set of assumptions that simply do not apply — and the most visible sign of that mismatch is the treatment of vowels as secondary marks rather than first-class sounds.

Concept
Abugida approach
Yapiri approach
Vowel status
Secondary — a modification of the consonant
Primary — an independent letter of equal weight
Visual form
Small diacritic mark attached to the consonant base
Full glyph, same height and weight as every consonant
Inherent vowel
Present — a bare consonant implies a vowel
Absent — every sound must be written explicitly
Writing /ki/
k + diacritic for i — one base, one mark
󱲩󱲢k + i — two equal, independent letters

Yapiri's Six Vowels — Full Letters, Every One

Yapiri has six vowel letters, covering the complete phonemic vowel inventory of Kokborok. Each is a standalone character with its own codepoint in the Unicode Private Use Area. None of them depends on a consonant to exist. None attaches to anything. Each stands alone on the line, the same height and visual weight as every consonant around it.

󱲠 /a/ U+F1CA0
󱲡 /e/ U+F1CA1
󱲢 /i/ U+F1CA2
󱲣 /u/ U+F1CA3
󱲤 /o/ U+F1CA4
󱲥 /ə/ schwa U+F1CA5

The sixth vowel deserves particular attention. The schwa /ə/ — the neutral, central vowel — is one of Kokborok's most characteristic sounds. It appears frequently, it is phonemically contrastive (changing the vowel changes the meaning of the word), and yet it is the sound most carelessly handled by other orthographies. Bengali script renders it imprecisely. Roman Kokborok often omits it or conflates it with other vowels. In Yapiri, it has its own dedicated letter at U+F1CA5, equal in standing to every other vowel. The schwa is not squeezed in as an afterthought; it is a founding member of the vowel set.

"In Yapiri, you say /k/ then /i/ — you write the /k/ glyph then the /i/ glyph. The logic of the script and the logic of speech are one and the same."

— Design principle, Yapiri v2.0

The practical consequence is that Yapiri is a fully phonemic alphabet for its vowels: one sound, one letter, no exceptions, no implied sounds, no cancellation marks. What you see on the page is exactly what you say aloud. This makes Yapiri genuinely easier to learn than an abugida for native Kokborok speakers — not because it is simpler, but because it is more honest about how the language actually sounds.

󱲩󱲤󱲩󱲪󱲤󱲷󱲤󱲩 kokborok — eight letters, eight sounds, none implied Every vowel written. Every sound visible. Nothing hidden.

The Marks Yapiri Does Use

Here is where intellectual honesty matters. Yapiri is a phonemic alphabet for its core letter inventory — but the language itself has features that cannot be captured by standalone letters alone. For those features, Yapiri uses combining diacritical marks: characters that attach above a base letter via OpenType mark positioning. In v2.0 there is exactly one.

Using diacritics here is not a contradiction of Yapiri's design philosophy. The philosophy was never "no diacritics at all costs." It was "every sound deserves to be written explicitly, and no part of the language should be treated as secondary." For tone and reduplication, combining marks are precisely the right tool — because in both cases, the mark modifies a letter rather than replacing one.


The High Tone Mark — U+F1CD1

Kokborok is a tonal language. It has two phonemic tones: a high tone and a low tone. Change the tone on a syllable and you change the word's meaning. This is not a subtle feature — it is a core grammatical property of the language, and any script that ignores it is writing Kokborok incompletely.

Yapiri marks the high tone using its own combining high tone mark at U+F1CD1 — a dedicated UCSUR Plane 15 combining character that floats above the letter it modifies. The low tone is left unmarked. This follows the same logical economy used in Roman Kokborok, where high tone is indicated and low tone is the default, unmarked state.

Low tone — unmarked (default)
High tone — U+F1CD1 above the vowel
󱲩󱲠 ka — low tone, no mark needed The absence of a mark is itself information
󱲩󱲠󱳑 ká — high tone mark above the vowel U+F1CD1 attaches above via OpenType GPOS mark positioning

Why a combining mark rather than a separate letter? Because tone is not a segment — it is a property of a segment. The high tone does not replace the vowel; it sits above it, modifying it, which is exactly what combining diacritics are designed to do. A standalone letter for high tone would be phonologically wrong; it would imply a separate sound where there is only a pitch variation on an existing one. The combining mark is the honest representation.

The mark (U+F1CD1) is anchored above each base letter via GPOS mark-to-base anchors defined in the font. This means it positions itself correctly above every vowel in the script, with each vowel having its own anchor coordinate tuned to its optical centre.

Note The high tone mark only ever appears above a vowel in practice, since tone in Kokborok is a property of the syllable nucleus. The font anchors it above all characters for technical completeness, but phonologically it belongs to the vowel.

Reduplication in v2.0

Earlier versions of Yapiri included a dedicated reduplication mark (U+030B, combining double acute) for signalling repeated syllables and words. In v2.0 the decision was made to remove it from the standard inventory. The reasoning was that combining marks should be reserved for features that genuinely cannot be represented any other way — and reduplication, on reflection, is handled more naturally through orthographic conventions (writing the repeated form explicitly) than through a dedicated diacritic. Keeping the diacritic inventory as small as possible also makes the script easier to learn and reduces rendering complexity across platforms.

The result is a clean diacritic inventory of exactly one mark: the high tone mark at U+F1CD1. Everything else in Yapiri is a full, standalone letter.


The Complete Picture

With vowels and the high tone mark in view, the design of Yapiri is clear as a unified system.

Character type Codepoint Example What it represents Why this form
Vowel letters U+F1CA0 – U+F1CA5 󱲠 󱲡 󱲢 󱲣 󱲤 󱲥 The six phonemic vowels of Kokborok Vowels are full sounds — they deserve full letters
High tone mark U+F1CD1 (Yapiri combining) 󱲠󱳑 Pitch raised on the vowel it sits above Tone is a property of a sound, not a sound itself

When something is a sound, Yapiri gives it a full standalone letter. When something is a property of a sound (like pitch), Yapiri uses a combining mark above the base letter. Every tool is used for exactly the job it is suited for, and no more.


Why This Matters for Kokborok

The scripts that Kokborok has historically used were designed for other languages. Bengali script carries the assumptions of Sanskrit phonology. Roman script was not designed with Tibeto-Burman tone systems or agglutinative grammar in mind. When you write Kokborok in either of these scripts, you spend constant effort working around the gaps — inventing workarounds for sounds the script was not built to handle, omitting or approximating features the orthography cannot represent neatly.

Yapiri was designed from Kokborok's phonology outward. Every design decision — the six independent vowel letters, the schwa as a first-class character, the combining tone mark, the reduplication mark — traces back to a specific feature of the language that needed a home. Nothing in Yapiri is borrowed convention applied without thought. Nothing is there because it was in some predecessor script. Every mark, every letter, every anchor has a reason rooted in the sounds and structures of Kokborok itself.

That is what it means to design a script for a language rather than adapting a script to one. The difference is visible in every line of Yapiri text — in the vowels that stand tall beside their consonants, in the acute that rises above a high-toned syllable, in the double mark that signals a reduplicated form. The language, written as it actually is.

Try It You can write in Yapiri right now on the web keyboard. Type a vowel and notice it stands alone, equal to every consonant. Try a high-toned word and see the acute appear above the vowel. The design explains itself the moment you begin to write.