Add an Emoji Language Pack
Emoji alphabets behave like any other lexicon—just remember that characters are grapheme clusters, not single bytes.
- Normalize input. Split source words with the
unicode-segmentationcrate (Rust) orgrapheme-splitter(JS) so surrogate pairs stay intact. - Author tile kinds. Assign IDs that reflect the emoji name and point
symbolto the rendered glyph. - Ship dictionaries. Use the set engine for tiny curated lists; switch to DAWG or FST once you exceed a few thousand entries.
- Expose bindings. Python, WASM, Unity, and Godot all accept UTF-8 strings end-to-end—no extra encoding layer is required.
emoji_tiles.rs
let tileset = Tileset {
tile_kinds: vec![
TileKind { id: "SUN".into(), symbol: "🌞".into(), score: 5, is_blank: false, aliases: vec![] },
TileKind { id: "MOON".into(), symbol: "🌙".into(), score: 4, is_blank: false, aliases: vec![] },
TileKind { id: "STAR".into(), symbol: "⭐".into(), score: 3, is_blank: false, aliases: vec![] },
],
};