class Database { } enum class GlyphType(val repr: String) { Vowel("vowel"), Cluster("cluster"), Syllable("syllable"), Punctuation("punctuation"), Numeric("numeric"), } open class Feature data class Glyph( val type: GlyphType, val unicode: String, val features: Array, ) { constructor(t: GlyphType, u: String, vararg f: Feature) : this(t, u, f) {} }