The problem
Ethiopic has homophone consonants that writers use interchangeably, so the same word is spelled two ways and string search silently misses one of them.
The approach
Fold the homophone families with codepoint arithmetic rather than a lookup table, in independently importable modules for folding, search, fuzzy matching, transliteration, Geez numerals, phone numbers and money.
Results
- Zero runtime dependencies; the core is 0.49 KB gzipped.
- 100% coverage.
What broke and what I learned
- Over-collapsing is a worse failure than under-collapsing, so negative tests assert that genuinely different words stay distinct.