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.

Version2.0 — June 2026
LanguageKokborok (Tiprasa)
Script TypePhonemic Alphabet
EncodingUnicode PUA · U+F1CA0–U+F1CFF
Total Characters45
Font FormatTTF / WOFF2

§ 1

Introduction

Yapiri (󱲺󱲠󱲧󱲢󱲷󱲢) is an original writing system created for the Kokborok language, the mother tongue of the Tiprasa 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 2.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.

45Total Characters
23Consonants
6Vowels
10Digits (0–9)
5Punctuation
1Diacritic

§ 2

Design Principles

Phonological primacy. Every character in the Yapiri inventory corresponds to a phoneme (or phoneme cluster) that is functional in Kokborok. The characters v and z are included as secondary characters to support loanword and scientific transcription where phonetic fidelity matters.

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 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.

§ 2a

Uniform Glyph Design

A defining feature of the Yapiri script is the uniform visual grammar shared across all glyphs. Every character in the inventory — consonants, vowels, numerals, and punctuation — was drawn within the same design system: identical stroke weight, consistent cap height and baseline, shared proportional grid, and rounded stroke terminals throughout. This is a deliberate structural choice, not an aesthetic accident.

Design Consistency Rules

Stroke Weight

All glyphs are drawn with a uniform stroke width. No character uses a heavier or lighter line than any other. This gives the script a cohesive visual texture in running text — the page feels even, without any single character appearing heavier or more dominant than its neighbours.

Proportional Grid

All characters share the same cap height, baseline, and x-height. Descenders and ascenders follow a consistent vertical rhythm. As a result, any line of Yapiri text sits evenly on the baseline without visual bouncing between characters — a critical property for readability in a new script unfamiliar to most readers.

Rounded Terminals

Every stroke in the Yapiri glyph set terminates with a rounded linecap. There are no sharp cut terminals or flat endings. This is consistent across all 45 characters, giving the script its distinctive organic but modern appearance at both display sizes and body text sizes.

Systematic Phonological Pairing

Related phonemes are visually related glyphs. Aspirated consonants are derived from their plain counterparts through a consistent, repeatable visual modification — a learner who knows /p/ can recognise /ph/ by pattern, not by memorisation. Voiced stops share structural DNA with their voiceless counterparts. This encodes phonological relationships directly into the visual system of the script.

Advantages of Uniform Design

The decision to impose strict design uniformity across the entire glyph inventory carries concrete benefits — particularly important for a script being introduced to a community for the first time.

AdvantageDescription
LearnabilitySystematic visual relationships between related phonemes reduce the number of arbitrary symbols a learner must memorise. Recognising the pattern is enough.
LegibilityUniform stroke weight and consistent proportions help the eye distinguish glyphs quickly in running text. Characters that share structural DNA are still visually distinct at small sizes.
ScalabilityBecause all glyphs share the same metrics, the script renders predictably at any font size — from a 10pt body paragraph to a 120pt display headline — without individual characters appearing disproportionate.
ExtensibilityNew characters — such as future loanword additions or variant forms — can be designed to match the existing grammar precisely. The design system functions as a specification in itself.
Digital TypographyConsistent advance widths and vertical metrics simplify OpenType GPOS anchor placement, reduce layout irregularities in typesetting applications, and make web font rendering stable across operating systems.
Unicode ReadinessA clearly defined and internally consistent design grammar strengthens a Unicode proposal by demonstrating that the script was engineered — not improvised. The UTC considers design coherence when evaluating new script submissions.

All Yapiri glyphs were drawn by hand in Inkscape using Bézier curves with rounded linecaps and linejoin settings, then imported into FontForge for metric calibration and OpenType feature compilation. The source drawings treat every glyph as part of one coherent family — not as individually designed symbols.

§ 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, 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, nasals, liquids, glides, and fricatives. Yapiri covers this full inventory natively. The following phonological categories are represented:

CategoryPhonemesNotes
Velar stopsk, kh, g, ngPlain, aspirated, voiced, nasal
Palatal stops / affricatesch, jPlain affricate, voiced affricate
Dental / alveolar stopst, th, dPlain, aspirated, voiced
Bilabial stopsp, ph, bPlain, aspirated, voiced
Nasalsm, n, n′Bilabial, alveolar, palatal
Liquidsr, lRhotic and lateral
Glidesw, yLabio-velar, palatal
Fricatives (native)s, hAlveolar fricative, glottal fricative
Fricatives (extended / loanword)v, zv, z — secondary loanword characters for scientific and loanword transcription
Vowelsa, i, u, e, o, əSix vowel phonemes; ə = high central/mid central unrounded

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

§ 5

Consonant Inventory

The Yapiri consonant inventory comprises 23 characters at codepoints U+F1CA7–U+F1CBD. They are organized into phonological groups below.

Stops — Voiceless, Aspirated, Voiced (U+F1CA7–U+F1CAF)
󱲧pF1CA7
󱲨tF1CA8
󱲩kF1CA9
󱲭phF1CAD
󱲮thF1CAE
󱲯khF1CAF
󱲪bF1CAA
󱲫dF1CAB
󱲬gF1CAC
Affricates (U+F1CB0–U+F1CB1)
󱲰chF1CB0
󱲱jF1CB1
Nasals (U+F1CB2–U+F1CB5)
󱲲mF1CB2
󱲳nF1CB3
󱲴n′F1CB4
󱲵ngF1CB5
Fricatives, Liquids & Glides (U+F1CB6–U+F1CBD)
󱲶sF1CB6
󱲷rF1CB7
󱲸lF1CB8
󱲹hF1CB9
󱲺yF1CBA
󱲻wF1CBB
󱲼vF1CBC
󱲽zF1CBD

Note on secondary characters. Two consonants in the Yapiri inventory carry a special classification distinct from the core native phoneme set:

v (U+F1CBC) and z (U+F1CBD) are classified as secondary characters for loanword and scientific transcription. Neither has a native Kokborok phonemic equivalent close enough for substitution — /v/ cannot be adequately rendered by /b/, and /z/ is phonetically too distant from /j/ to serve in scientific names such as Zea mays, zinc, or enzyme without causing confusion. These characters are actively justified.

CodepointRomanizationIPACategoryNotes
Velars
U+F1CA9k/k/Stop, voicelessVelar, unaspirated
U+F1CAFkh/kʰ/Stop, aspiratedVelar, aspirated
U+F1CACg/g/Stop, voicedVelar
U+F1CB5ng/ŋ/NasalVelar nasal
Palatals / Affricates
U+F1CB0ch/tɕ/Affricate, voiceless
U+F1CB1j/dʑ/Affricate, voiced
Dentals / Alveolars
U+F1CA8t/t/Stop, voiceless
U+F1CAEth/tʰ/Stop, aspirated
U+F1CABd/d/Stop, voiced
Bilabials
U+F1CA7p/p/Stop, voiceless
U+F1CADph/pʰ/Stop, aspirated
U+F1CAAb/b/Stop, voiced
Nasals, Liquids, Glides
U+F1CB2m/m/NasalBilabial
U+F1CB3n/n/NasalAlveolar
U+F1CB7r/r/LiquidRhotic
U+F1CB8l/l/LiquidLateral
U+F1CBBw/w/GlideLabio-velar; word-initial only
U+F1CBAy/j/GlidePalatal
Fricatives
U+F1CB6s/s/FricativeNative
U+F1CB9h/h/FricativeNative, glottal
U+F1CBCv/v/FricativeSecondary — loanword; no native phonemic equivalent
U+F1CBDz/z/FricativeSecondary — loanword; phonetically distinct from /j/; needed for scientific nomenclature
Note on n′ (U+F1CB4) — Palatal Nasal: The character romanized as n′ (n-prime) represents a palatal nasal distinct from the alveolar nasal n. In Kokborok, this sound occurs before palatal consonants and in certain morphological contexts. The prime mark (′) distinguishes it from the plain n in romanization. In Yapiri, it has its own dedicated glyph at U+F1CB4 — it is never written as a digraph or modifier of n.

Examples —
󱲢󱲴  in′ — "yes"  ·  i · n′

󱲢󱲴󱲹󱲡  in′he — "no"  ·  i · n′ · h · e

§ 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 for vowels, and no hidden sounds.

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

Vowel Letters (U+F1CA0–U+F1CA5) — Full Independent Characters
󱲠aF1CA0
󱲡eF1CA1
󱲢iF1CA2
󱲣uF1CA3
󱲤oF1CA4
󱲥əF1CA5
High Tone Mark (U+F1CD1) — Combining Character
󱳑high toneF1CD1
CodepointLetterPhonemeIPANotes
Vowel Letters — All Independent Full Characters
U+F1CA0a/a/[a]Open central unrounded
U+F1CA1e/e/[e]Close-mid front unrounded
U+F1CA2i/i/[i]Close front unrounded
U+F1CA3u/u/[u]Close back rounded
U+F1CA4o/o/[o]Close-mid back rounded
U+F1CA5ə/ə/[ə]Mid central unrounded; mid-word only, never word-initial
Combining Diacritic — High Tone Only
U+F1CD1◌́High tone mark; placed above the vowel of the syllable
Yapiri has no vowel diacritics. All six vowels are full independent letters written sequentially after consonants. The only combining mark in Yapiri is the high tone diacritic (U+F1CD1) — it does not modify a vowel letter's identity.
Note on the vowel ə (U+F1CA5): The vowel represented by this grapheme is classified as /ə/ (mid-central unrounded). In Kokborok speech, this vowel occupies a phonetic space that native speakers may perceive as falling between "ee" and "uh" — overlapping with the territory of the high central unrounded vowel /ɨ/. The precise phonological classification of this vowel remains an open question in Kokborok linguistics, with some analyses favouring /ə/ (mid-central) and others pointing toward /ɨ/ (high central). The Yapiri script adopts /ə/ as its working classification, acknowledging this ongoing scholarly ambiguity. This classification may be revised as linguistic research on Kokborok phonology advances.
High Tone Mark (U+F1CD1) — placed directly over the vowel of the high-tone syllable. In Kokborok Latin romanization, a vowel followed by 'h' conventionally signals high tone (e.g. oh). In Yapiri, the 'h' is dropped and the mark sits over the vowel instead.

Example — bohrok (they):   󱲪󱲤󱳑󱲷󱲤󱲩   b · ó · r · o · k — high tone mark over the first vowel o

§ 7

Numeral System

Yapiri includes a complete set of 10 digit glyphs (0–9) at codepoints U+F1CC0–U+F1CC9. 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+F1CC0 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+F1CC0–U+F1CC9)
󱳀0F1CC0
󱳁1F1CC1
󱳂2F1CC2
󱳃3F1CC3
󱳄4F1CC4
󱳅5F1CC5
󱳆6F1CC6
󱳇7F1CC7
󱳈8F1CC8
󱳉9F1CC9

§ 8

Unicode & PUA Mapping

Yapiri is currently encoded in the Unicode Supplementary Private Use Area-A (Plane 15), occupying a block of 96 codepoints from U+F1CA0 to U+F1CFF, of which 45 are currently assigned. The PUA is a permanent part of the Unicode standard reserved for scripts and characters that have not yet received official Unicode allocations.

The block is organized in sequential order: vowels first (U+F1CA0–U+F1CA5), consonants (U+F1CA7–U+F1CBD), numerals (U+F1CC0–U+F1CC9), punctuation (U+F1CCB–U+F1CCF), and the high tone mark (U+F1CD1). Reserved gaps are left between blocks to accommodate future additions without disturbing existing assignments.

RangeCountCategory
U+F1CA0–U+F1CA56Vowel Letters (independent)
U+F1CA7–U+F1CBD23Consonants
U+F1CC0–U+F1CC910Numerals (0–9)
U+F1CCB–U+F1CCF5Punctuation
U+F1CD11High Tone Mark (combining)
Total45
Codepoint migration (v1.0 → v2.0): Version 1.0 of Yapiri was encoded in the Basic Multilingual Plane PUA at U+E000–U+E02D. In version 2.0, the entire script was migrated to the Supplementary Private Use Area-A at U+F1CA0–U+F1CFF (Plane 15). This deconflicts Yapiri from long-standing community PUA conventions in the U+E000 range (notably the Tengwar allocation under the ConScript Unicode Registry) and follows the established practice of placing newly registered scripts in Plane 15. The high tone mark, previously mapped to the standard combining codepoint U+0301, is now an independent Yapiri character at U+F1CD1. The reduplication mark (formerly U+030B) and the optional f and chh characters have been retired from the inventory; reduplicated words are now written out in full.
Global note: All Yapiri characters now reside within the single Plane 15 block. No standard combining marks or BMP PUA codepoints are required to render Yapiri text — the font is fully self-contained within U+F1CA0–U+F1CFF.
PUA stability notice: These codepoint assignments are stable for version 2.0 and will not be changed without a major version revision. The v1.0 → v2.0 migration was itself such a major revision, undertaken specifically to deconflict the encoding before wider adoption. 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 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.

/* CSS usage */ @font-face { font-family: 'Yapiri'; src: url('assets/fonts/Yapiri.woff2?v=2') format('woff2'), url('assets/fonts/Yapiri.ttf?v=2') format('truetype'); font-display: swap; } .yapiri-text { font-family: 'Yapiri', serif; /* PUA characters U+F1CA0–U+F1CFF */ }

§ 9

OpenType Features

Feature TagTableDescription
markGPOSMark-to-base positioning for the high tone mark on vowel and consonant bases
kernGPOSKerning pairs covering most common Kokborok phoneme sequences

GPOS mark-to-base anchors are defined on all vowel and consonant glyphs as base characters, and on the high tone mark (U+F1CD1) as a combining mark. Each base glyph carries a named anchor point and the mark carries a corresponding attachment point, allowing the OpenType shaping engine to position the diacritic correctly regardless of the base glyph's advance width.

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 correctly. This is an application limitation, not a font defect.

§ 10

Encoding Rules

#RuleExample
R1Every sound must be written — consonants and vowels are both full independent lettersU+F1CA7 = /p/ only; to write /pa/ use U+F1CA7 + U+F1CA0
R2Consonant + vowel = consonant codepoint followed immediately by vowel codepointU+F1CA7 + U+F1CA2 = /pi/
R3A word or syllable beginning with a vowel = vowel codepoint with no preceding consonantU+F1CA0 alone = /a/
R4Consonant clusters are written by placing consonant codepoints sequentially with no vowel betweenU+F1CA7 + U+F1CB7 = /pr/
R5High tone is marked by U+F1CD1 placed after the vowel codepoint of the syllableU+F1CA0 + U+F1CD1 = /á/
R6Schwa (U+F1CA5) appears only mid-word, never word-initial. Consonant w (U+F1CBB) appears only word-initially, never mid-word. The 'w' in Kokborok romanization that appears mid-word is always written as schwa ə in Yapiri.󱲻󱲠󱲩 wak (pig) — W at word start  ·  󱲩󱲥󱲨󱲥󱲢 kwtwi (sweet) — ə mid-word
R7Spaces separate words; no special word-joiner is required. Reduplicated words are written out in full.U+0020 space as normal

§ 11

Input Methods

1. Web keyboard tool. The Yapiri website includes an interactive on-screen keyboard that outputs PUA codepoints directly. No installation required. Accessible at yapiriscript.com/try.html.

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.

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.

§ 12

Romanization System

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

RomanizationPhonemeIPANotes
k, g, t, d, p, b/k/, /g/, /t/, /d/, /p/, /b/as IPAPlain stops
kh, th, ph/kʰ/, /tʰ/, /pʰ/as IPAAspirated stops
ng/ŋ/[ŋ]Velar nasal
ch, j/tɕ/, /dʑ/[tɕ], [dʑ]Palatal affricates
m, n, r, l, w, y/m/, /n/, /r/, /l/, /w/, /j/as IPASonorants and glides
s, h, v, z/s/, /h/, /v/, /z/as IPAv, z = secondary loanword characters
a, i, u, e, o/a/, /i/, /u/, /e/, /o/as IPACore vowels
ə/ə/[ə]Mid-central unrounded; mid-word only

§ 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.

Note on the v2.0 PUA migration: The migration from U+E000–U+E02D (v1.0) to the Plane 15 block U+F1CA0–U+F1CFF (v2.0) is a deliberate step on this roadmap. Placing the script in the Supplementary Private Use Area-A, and deconflicting it from existing ConScript Unicode Registry conventions in the BMP PUA, aligns Yapiri with the encoding practices expected of a script preparing for a formal Unicode proposal. It is a PUA-to-PUA move; it is independent of, and a precursor to, any future allocation of permanent (non-PUA) codepoints by the UTC.
1
Phase 1 · Complete
Font & PUA Release
Public release of the Yapiri TTF font, web keyboard tool, and this specification. Establishes the script in the public record. In v2.0 the encoding was migrated to the Plane 15 PUA block (U+F1CA0–U+F1CFF) to deconflict from existing BMP PUA conventions.
2
Phase 2 · In Progress
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 · Complete
Omniglot & UCSUR Listing
Submission to omniglot.com and UCSUR registration at kreativekorp.com, the standard reference directories for the world's writing systems.
4
Phase 4
Unicode Proposal Drafting
Preparation of a formal Unicode proposal document following UTC 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 page.