mongol-norm 0.1.0

Shape-aware normalizer for Traditional Mongolian script: the UTN #57 v4 shaping engine and FVS-pinned canonical normalizer, pure Rust with zero dependencies.
Documentation
// @generated by scripts/gen_rust_tables.py -- DO NOT EDIT.
// Source: mongol_norm/data/MCH.json (sha256 e1e00127e0812ecb)
// generated_from: mongfontbuilder 0.10.6

use crate::generated::enums::Alias;
use crate::generated::enums::Condition;
use crate::generated::enums::WrittenUnit;
use crate::tables::Categories;
use crate::tables::Fvs;
use crate::tables::Letter;
use crate::tables::LocaleData;
use crate::tables::Particle;
use crate::tables::ParticleSym;
use crate::tables::Position;
use crate::tables::Variant;

#[rustfmt::skip]
pub(crate) static DATA: LocaleData = LocaleData {
    letters: &[
        Letter { cp: 0x1807, alias: Alias::Sbm, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1820, alias: Alias::A, variants: &[
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::A, WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A, WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Aa], default: false, conditions: &[Condition::PostBowed] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1823, alias: Alias::O, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A, WrittenUnit::O], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A, WrittenUnit::O], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::O], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::O], default: false, conditions: &[Condition::Marked, Condition::PostBowed] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::U], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1828, alias: Alias::N, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::N], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::N], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::N], default: false, conditions: &[Condition::Onset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A], default: true, conditions: &[Condition::Devsger] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Nx], default: false, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::N], default: false, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Nx], default: false, conditions: &[] },
        ] },
        Letter { cp: 0x1829, alias: Alias::Ng, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A, WrittenUnit::G], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A, WrittenUnit::G], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::A, WrittenUnit::G], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::A, WrittenUnit::G], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x182A, alias: Alias::B, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::B], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::B], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::B], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::B], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x182E, alias: Alias::M, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::M], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::M], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::M], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::M], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x182F, alias: Alias::L, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::L], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::L], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::L], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::L], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1830, alias: Alias::S, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::S], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::S], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::S], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::S], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1834, alias: Alias::Ch, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Ch], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Ch], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Ch], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Ch], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1835, alias: Alias::J, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::J], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::J], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1836, alias: Alias::Y, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Y], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Y], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Y], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Y], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1838, alias: Alias::W, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::W], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::W], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::W], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::W], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x183A, alias: Alias::Kh, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::K2], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::K2], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::K2], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::K2], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x185D, alias: Alias::E, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::A], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Ah], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::A], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::At], default: false, conditions: &[Condition::PostBowed] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Aa], default: false, conditions: &[Condition::PostBowedFeminine] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs4), written: &[WrittenUnit::Ah], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x185F, alias: Alias::Ii, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Ai], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Ai], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Ai], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Ai], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1860, alias: Alias::U, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A, WrittenUnit::Oh], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A, WrittenUnit::Oh], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::O], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Oh], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::U], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Oh], default: false, conditions: &[Condition::Marked, Condition::PostBowed] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::O], default: false, conditions: &[Condition::FeminineMarked, Condition::PostBowedFeminine] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs4), written: &[WrittenUnit::Uh], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1861, alias: Alias::Ue, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::A, WrittenUnit::Ue], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A, WrittenUnit::O, WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::O, WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Ue], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1864, alias: Alias::G, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Hh], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gh], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gh], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Hh], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gh], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Hh], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Hh], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1865, alias: Alias::H, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Hc], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gc], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gc], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Hc], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Gc], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Hc], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Hc], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1866, alias: Alias::P, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Pb], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Pb], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Pb], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Pb], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1867, alias: Alias::Sh, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Sp], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Sp], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Sp], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Sp], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1868, alias: Alias::T, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Tb], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::T], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Tb], default: true, conditions: &[Condition::Feminine] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::T], default: false, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Db], default: true, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Dd], default: false, conditions: &[Condition::Devsger] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::D], default: false, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Dd], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1869, alias: Alias::D, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Th], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Tt], default: false, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Dt], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Tt], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Th], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Dt], default: false, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Dt], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Dh], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Dh], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x186C, alias: Alias::Gh, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Kh], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Kh], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Kh], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Kh], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x186D, alias: Alias::Hh, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Kc], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Kc], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Kc], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Kc], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x186E, alias: Alias::C, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Cs], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Cs], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Cs], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Cs], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x186F, alias: Alias::Z, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Zs], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Zs], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Zs], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Zs], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1870, alias: Alias::Rh, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Rr], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Rr], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Rr], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Rr], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1871, alias: Alias::Cr, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Cc], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Cc], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Cc], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Cc], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1873, alias: Alias::I, variants: &[
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::I], default: false, conditions: &[Condition::Particle] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A, WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::A, WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::I, WrittenUnit::I], default: false, conditions: &[Condition::VowelDevsger] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::A, WrittenUnit::I], default: false, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::I], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Iy], default: false, conditions: &[Condition::Marked] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::I], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1874, alias: Alias::K, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::H], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::G], default: false, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Gx], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::G], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Gx], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::H], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::Hx], default: false, conditions: &[Condition::MasculineDevsger] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::G], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::H], default: true, conditions: &[Condition::MasculineOnset] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs4), written: &[WrittenUnit::Gx], default: false, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::G4], default: false, conditions: &[Condition::Feminine] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::Gx], default: false, conditions: &[] },
            Variant { position: Position::Fina, fvs: Some(Fvs::Fvs3), written: &[WrittenUnit::Hx], default: true, conditions: &[Condition::MasculineDevsger] },
        ] },
        Letter { cp: 0x1875, alias: Alias::R, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::R], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::R3], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::R], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::R3], default: false, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::R], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::R3], default: false, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::R2], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1876, alias: Alias::F, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::V], default: true, conditions: &[] },
            Variant { position: Position::Isol, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::W], default: false, conditions: &[] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::W], default: false, conditions: &[Condition::Marked] },
            Variant { position: Position::Init, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::V], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs1), written: &[WrittenUnit::W], default: false, conditions: &[Condition::Marked] },
            Variant { position: Position::Medi, fvs: Some(Fvs::Fvs2), written: &[WrittenUnit::V], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::V], default: true, conditions: &[] },
        ] },
        Letter { cp: 0x1877, alias: Alias::Zr, variants: &[
            Variant { position: Position::Isol, fvs: None, written: &[WrittenUnit::Ic], default: true, conditions: &[] },
            Variant { position: Position::Init, fvs: None, written: &[WrittenUnit::Ic], default: true, conditions: &[] },
            Variant { position: Position::Medi, fvs: None, written: &[WrittenUnit::Jc], default: true, conditions: &[] },
            Variant { position: Position::Fina, fvs: None, written: &[WrittenUnit::Jc], default: true, conditions: &[] },
        ] },
    ],
    categories: Categories {
        vowel: &[Alias::A, Alias::E, Alias::I, Alias::O, Alias::U, Alias::Ue, Alias::Ii],
        consonant: &[Alias::Sbm, Alias::N, Alias::Ng, Alias::K, Alias::G, Alias::H, Alias::B, Alias::P, Alias::S, Alias::Sh, Alias::T, Alias::D, Alias::L, Alias::M, Alias::Ch, Alias::J, Alias::Y, Alias::R, Alias::F, Alias::W, Alias::Kh, Alias::Gh, Alias::Hh, Alias::C, Alias::Z, Alias::Rh, Alias::Cr, Alias::Zr],
        vowel_masculine: &[Alias::A, Alias::O, Alias::Ue],
        vowel_feminine: &[Alias::E, Alias::U],
        vowel_neuter: &[Alias::I],
    },
    particles: &[
        Particle { key: &[ParticleSym::Mvs, ParticleSym::Alias(Alias::I)], indices: &[1] },
    ],
};