Technical Specification

Yapiri Script

A complete formal description of the Yapiri writing system for Kokborok — covering glyph inventory, phonological mapping, PUA encoding, OpenType layout, and design rationale.

Version 1.0 — May 2026
Language Kokborok (Borok)
Script Type Phonemic Alphabet
Encoding Unicode PUA · U+E000–U+E02F
Total Characters 48
Font Format OTF / TTF / WOFF2

§ 1

Introduction

Yapiri (ᵧₐₚᵢᵣᵢ — yapiri) is an original writing system created for the Kokborok language, the mother tongue of the Borok people of Tripura, Northeast India. The name yapiri means "footprints" in Kokborok, reflecting the essential nature of all writing: traces of a living voice, preserved across time.

Kokborok is a Tibeto-Burman language spoken by approximately one million people. It has historically been written in the Bengali script, and more recently in the Roman script — neither of which maps cleanly to Kokborok phonology. Several dedicated scripts have been proposed over the decades (including Aima and Kókmari), but none has achieved broad adoption. Yapiri represents a new effort: a script designed from first principles, shaped entirely by the phonological requirements of the language.

This document constitutes the authoritative technical specification for the Yapiri script, version 1.0. It is intended for linguists, font engineers, software developers, keyboard layout designers, educators, and community members who wish to understand, implement, or extend the system.

48 Total Characters
25 Consonants
6 Vowels
10 Digits (0–9)
5 Punctuation
2 Diacritics

§ 2

Design Principles

Yapiri was designed according to five core principles:

Phonological primacy. Every character in the Yapiri inventory corresponds to a phoneme (or phoneme cluster) that is functional in Kokborok. No characters are included for historical, aesthetic, or borrowing reasons alone. Loanword phonemes (f, v, z) are included but marked as secondary.

Systematic visual grammar. Related phonemes share visual elements. Aspirated consonants are derived from their plain counterparts through a consistent modification. Voiced pairs of voiceless stops share structural DNA. This makes the script learnable as a system rather than a set of arbitrary symbols.

Phonemic alphabet structure. Yapiri is a phonemic alphabet: every character — whether consonant or vowel — is a full, independent letter representing exactly one phoneme. There are no inherent vowels, no combining diacritics for vowels, and no hidden sounds. Every sound heard in a word must be written explicitly.

Visual elegance. Glyphs were drawn by hand in Inkscape using Bézier curves with rounded linecaps and linejoin, producing an aesthetic that is organic without being decorative. The script is designed to look natural at both display and text sizes.

Digital-first design. Yapiri was built for the digital age from the start. The font is distributed as OTF/TTF/WOFF2 with full OpenType GPOS/GSUB support. PUA encoding ensures compatibility across all Unicode-compliant software. Keyboard input tools are provided alongside the font.

§ 3

Script Type

Yapiri is classified as a phonemic alphabet. Every sound in the Kokborok language — both consonants and vowels — is represented by its own independent, full-sized character. Consonant glyphs represent only the consonant sound. Vowel glyphs represent only the vowel sound. Letters are written sequentially in a linear string, where each glyph carries equal weight.

For example, the consonant glyph for /p/ represents only /p/ — never /pa/. To write the syllable /pa/, the consonant /p/ must be followed by the vowel /a/. This strict one-to-one mapping between sound and symbol is the defining feature of Yapiri.

Sounds that are traditionally written as digraphs in the Latin-based Kokborok script (such as ph, th, kh, ch, chh, ng) are represented by single, unique glyphs in Yapiri. These are called atomic phonemes — they carry the same structural weight as any other independent character and are not decomposed in writing.

Reading rule: The script is read left-to-right. Every character represents exactly one phoneme. Unlike abugidas, there are no inherent or hidden vowels — every sound heard in a word must be written with its own dedicated character.

Yapiri is written left-to-right, in the same direction as the Latin and Bengali scripts used alongside it. There is no distinction between uppercase and lowercase. Words are separated by a space character.

§ 4

Phonological Scope

Kokborok has a rich consonantal inventory including plain stops, aspirated stops, voiced stops (plain and breathy), nasals, liquids, glides, and fricatives. Yapiri covers this full inventory natively. The following phonological categories are represented:

Category Phonemes Notes
Velar stopsk, kh, g, ṅ, ngPlain, aspirated, voiced, breathy voiced, nasal
Palatal stops / affricatesch, chh, jPlain, aspirated, voiced affricate
Dental / alveolar stopst, th, dPlain, aspirated, voiced, breathy voiced
Bilabial stopsp, ph, bPlain, aspirated, voiced, breathy voiced
Nasalsm, nBilabial, alveolar
Liquidsr, lRhotic and lateral
Glidesw, yLabio-velar, palatal
Sibilant / fricatives (native)s, hAlveolar fricative, glottal fricative
Fricatives (loanword)f, v, zFor words borrowed from Bengali, English, Hindi
Vowelsa, i, u, e, o, əSix vowel phonemes; ə () = high central/mid central unrounded

The vowel ə () is a distinctive phoneme in Kokborok and receives an independent glyph form in Yapiri.

§ 5

Consonant Inventory

The Yapiri consonant inventory comprises 25 characters (codepoints U+E006–U+E01E). They are organized into four phonological groups below.

Stops (U+E006–U+E010)
pE00C
kE000
tE008
phE00D
khE001
thE009
bE00E
dE00A
gE002
chE005
chhE006
jE007
Affricates (U+E006–U+E010)
chE005
chhE006
jE007
Nasals (U+E011–U+E015)
mE010
nE011
E011
ngE004
Fricatives & Sibilants (U+E016–U+E01A)
sE016
hE017
fE018
vE019
zE01A
rE012
lE013
wE014
yE015

Note on loanword consonants. The three fricatives f (U+E018), v (U+E019), and z (U+E01A) are not native to Kokborok phonology. They were added to support loanwords from Bengali, Hindi, and English. Their glyphs follow the same visual design grammar as the rest of the consonant set, but they are distinguished in educational materials as secondary characters.

Codepoint Romanization IPA Category Notes
Velars
U+E000k/k/Stop, voicelessVelar, unaspirated
U+E001kh/kʰ/Stop, aspiratedVelar, aspirated
U+E002g/g/Stop, voicedVelar
U+E004ng/ŋ/NasalVelar nasal
Palatals
U+E005ch/tɕʰ/Affricate, voiceless
U+E006chh/tɕʰ/Affricate, aspirated
U+E007j/dʑ/Affricate, voiced
Dentals / Alveolars
U+E008t/t/Stop, voiceless
U+E009th/tʰ/Stop, aspirated
U+E00Ad/d/Stop, voiced
Bilabials
U+E00Cp/p/Stop, voiceless
U+E00Dph/pʰ/Stop, aspirated
U+E00Eb/b/Stop, voiced
Nasals, Liquids, Glides
U+E010m/m/NasalBilabial
U+E011n/n/NasalAlveolar
U+E012r/r/LiquidRhotic
U+E013l/l/LiquidLateral
U+E014w/w/GlideLabio-velar
U+E015y/j/GlidePalatal
Fricatives
U+E016s/s/FricativeNative
U+E017h/h/FricativeNative, glottal
U+E018f/f/FricativeLoanword
U+E019v/v/FricativeLoanword
U+E01Az/z/FricativeLoanword

§ 6

Vowel System

Yapiri has six independent vowel letters, each representing a distinct vowel phoneme of Kokborok. As a phonemic alphabet, every vowel is written explicitly as a full, standalone character — there are no inherent vowels, no diacritics, and no hidden sounds. Every sound heard must be written.

Vowels are placed after consonants horizontally in a linear sequence to form syllables. For example, the syllable /pa/ is written as the consonant /p/ followed by the vowel /a/. All six vowels carry equal character weight to consonants in the script.

Vowel Letters (U+E01B–U+E020) — Full Independent Characters
aE01B
iE01C
uE01D
eE01E
oE01F
əE020
Combining Diacritics — Tone & Reduplication Only (not vowel modifiers)
◌́high toneU+0301
◌̋reduplicationU+030B
Codepoint Letter Phoneme IPA Notes
Vowel Letters — All Independent Full Characters
U+E01Ba/a/[a]Open central unrounded
U+E01Ci/i/[i]Close front unrounded
U+E01Du/u/[u]Close back rounded
U+E01Ee/e/[e]Close-mid front unrounded
U+E01Fo/o/[o]Close-mid back rounded
U+E020ə/ə/[ə]High central unrounded; distinct from consonant /w/
Combining Diacritics — Tone & Reduplication Only
U+0301◌́High tone mark; placed above the vowel of the syllable
U+030B◌̋Reduplication shorthand; marks a repeated morpheme
Yapiri has no vowel diacritics. All six vowels are full independent letters written sequentially after consonants. The only combining marks in Yapiri are the high tone diacritic (U+0301) and the reduplication mark (U+030B) — neither modifies a vowel letter’s identity.

§ 7

Numeral System

Yapiri includes a complete set of 10 digit glyphs (0–9) at codepoints U+E026–U+E02F, plus a standalone ten-glyph conceived as a generative base for positional notation. The Yapiri numeral system uses a staff-and-crossbar design grammar: each digit is built from a vertical staff with a distinctive crossbar pattern, giving the set a systematic, learnable visual family.

Numerals combine with standard decimal positional notation. The digit 0 at U+E026 is visually distinct from the alphabetic characters and functions as a true zero. Larger numbers are formed by stringing digits left-to-right in the normal positional manner.

Digits 0–9 (U+E026–U+E02F)
0E026
1E027
2E028
3E029
4E02A
5E02B
6E02C
7E02D
8E02E
9E02F

§ 8

Unicode & PUA Mapping

Yapiri is currently encoded in the Unicode Private Use Area (PUA), occupying a contiguous block of 48 codepoints from U+E000 to U+E02F. The PUA is a permanent part of the Unicode standard reserved for scripts and characters that have not yet received official Unicode allocations, or for private/community use. Its use here is fully conformant with Unicode practice.

The block is organized in sequential order: consonants first (U+E000–U+E01A), followed by vowel letters (U+E01B–U+E020), and numerals (U+E021–U+E02A), with punctuation at (U+E02B–U+E02F). This ordering facilitates both visual browsing and font engineering.

Range Count Category
U+E000–U+E01A25Consonants
U+E01B–U+E0206Vowel Letters (independent)
U+E021–U+E02A10Numerals (0–9)
U+E02B–U+E02F5Punctuation
U+0301, U+030B2Combining Diacritics (tone & reduplication)
Total48
PUA stability notice: These codepoint assignments are stable for version 1.0 and will not be changed without a major version revision. Any future official Unicode encoding will be issued as a separate encoding with a migration path documented in this specification.

To render Yapiri text, the Yapiri OTF/TTF font must be installed. Without it, PUA codepoints render as boxes or missing glyph indicators in all applications. This is normal behavior for PUA-encoded scripts and is not a font error.

The font's internal name is Yapiri. It should be selected by that name in word processors, design applications, and CSS (font-family: 'Yapiri').

/* CSS usage */ @font-face { font-family: 'Yapiri'; src: url('yapiri.otf') format('opentype'), url('yapiri.ttf') format('truetype'); } .yapiri-text { font-family: 'Yapiri', serif; /* PUA characters U+E000–U+E02F */ }

§ 9

OpenType Features

The Yapiri font implements the following OpenType layout features:

Feature Tag Table Description
markGPOSMark-to-base positioning for diacritics on consonant bases
kernGPOSKerning pairs, covering almost all the possible pairs in Kokborok phonology

GPOS mark-to-base anchors are defined on all consonant glyphs (U+E000–U+E01A) as base marks, and on the diacritics (U+E021–U+E025) as combining marks. Each base glyph carries a named anchor point (top_anchor) and each diacritic carries a corresponding attachment point (top_attach), allowing the OpenType shaping engine to position diacritics correctly regardless of the base glyph's advance width.

Kerning is implemented via GPOS pair-adjustment lookups.

Note on application compatibility. Full GPOS support requires an OpenType-aware application (InDesign, modern Word, LibreOffice, web browsers). Some older applications may not apply GPOS kerning or mark positioning. In such cases, diacritics may not be positioned correctly relative to their base glyphs. This is an application limitation, not a font defect.

§ 10

Encoding Rules

The following rules govern the correct encoding of Yapiri text in Unicode:

# Rule Example
R1Every sound must be written — consonants and vowels are both full independent letters = /p/ only; to write /pa/ write  + 
R2Consonant + vowel = consonant codepoint followed immediately by vowel codepoint +  = /pi/
R3A word or syllable beginning with a vowel = vowel codepoint with no preceding consonant alone = /a/
R4Consonant clusters are written by placing consonant codepoints sequentially with no vowel between +  = /pr/
R5High tone is marked by U+0301 placed after the vowel codepoint of the syllable́ = /á/ (high tone /a/)
R6Reduplication is marked by U+030B on the repeated morphemeMarks abbreviated repeated forms
R7Spaces separate words; no special word-joiner is requiredU+0020 space as normal
R8Numerals are standalone independent characters– used independently

§ 11

Input Methods

Three input methods are available for typing Yapiri text:

1. Web keyboard tool. The Yapiri website includes an interactive on-screen keyboard that outputs PUA codepoints directly. No installation required. Suitable for occasional use and for copying text into other applications. Accessible at yapiriscript.com/#keyboard.

2. Keyman keyboard layout. A Keyman keyboard layout is provided for native system-level input on Windows, macOS, iOS, and Android. Keyman is an open-source input method platform maintained by SIL International. The Yapiri layout uses a phoneme-based QWERTY mapping: pressing k inserts U+E000, g inserts U+E002, and so forth. Aspirated consonants are typed as digraphs (e.g., k+h = U+E001). Vowel diacritics are entered after the consonant base. ZWNJ (for cluster breaking) is mapped to a dedicated key.

3. Direct Unicode input. Any application that supports Unicode PUA entry (via Alt+code on Windows, or the Unicode hex input method on macOS) can be used to enter Yapiri codepoints directly.

The Yapiri font must be installed and selected in the target application for any input method to render correctly. PUA codepoints typed without the font active will appear as boxes.

The Keyman layout file (.kmp package) is the recommended input method for sustained writing. It can be downloaded from the Yapiri website and installed in minutes. Once installed, users switch to the Yapiri layout the same way they switch between any system input languages.

§ 12

Romanization System

The Yapiri romanization is a practical orthographic transcription system used alongside the script — for learner materials, technical documentation (including this specification), and transliteration. It is not intended as a replacement for the script.

The system follows these conventions:

Romanization Phoneme IPA Notes
k, g, t, d, p, b/k/, /g/, /t/, /d/, /p/, /b/as IPAPlain stops
kh, gh, th, dh, ph, bh/kʰ/, /gʱ/, /tʰ/, /dʱ/, /pʰ/, /bʱ/as IPAAspirated / breathy
ng/ŋ/[ŋ]Velar nasal
c, ch/tɕ/, /tɕʰ/[tɕ], [tɕʰ]Palatal affricates
j/dʑ/[dʑ]Voiced palatal affricate
m, n, r, l, w, y/m/, /n/, /r/, /l/, /w/, /j/as IPASonorants and glides
s, h, f, v, z/s/, /h/, /f/, /v/, /z/as IPAf, v, z = loanword
a, i, u, e, o/a/, /i/, /u/, /e/, /o/as IPACore vowels
ɨ/ɨ/[ɨ]High central unrounded; also written ë in some sources
| (pipe)Romanization marker for ZWNJ (cluster break)

§ 13

Unicode Submission Roadmap

The long-term goal for Yapiri is formal inclusion in the Unicode Standard, which would give the script permanent, globally recognized codepoints outside the PUA. This is a multi-phase process governed by the Unicode Technical Committee (UTC) and coordinated by the Script Encoding Initiative (SEI) at the University of California, Berkeley.

1
Phase 1 · Current
Font & PUA Release
Public release of the Yapiri OTF/TTF font, Keyman keyboard layout, and this specification. Establishes the script in the public record.
2
Phase 2
Community & Institutional Adoption
Outreach to Kokborok educators, publishers, and government bodies in Tripura. Building a user base is a prerequisite for Unicode acceptance — the UTC requires demonstrated real-world use.
3
Phase 3
Omniglot & ScriptSource Listing
Submission to Omniglot.com and SIL's ScriptSource database, the standard reference directories for the world's writing systems. These listings strengthen the formal record.
4
Phase 4
Unicode Proposal Drafting
Preparation of a formal Unicode proposal document following the UTC proposal guidelines, including character repertoire, properties, and collation order. Engagement with SEI at UC Berkeley for expert support.
5
Phase 5
UTC Review & Encoding
Formal review by the Unicode Technical Committee. Upon approval, Yapiri receives permanent Unicode codepoints. Migration documentation from PUA to official encoding will be published with this specification.

If you are a linguist, Unicode specialist, or institutional representative interested in supporting the Yapiri Unicode submission, please reach out via the community contact form at yapiriscript.com.