/// Miscellaneous sense tags from JMdict /// /// See https://www.edrdg.org/jmwsgi/edhelp.py#kw_misc enum JMdictMisc { abbreviation(id: 'abbr', description: 'abbreviation'), aphorism(id: 'aphorism', description: 'aphorism (pithy saying)'), archaic(id: 'arch', description: 'archaic'), character(id: 'char', description: 'character'), childrensLanguage(id: 'chn', description: 'children\'s language'), colloquial(id: 'col', description: 'colloquial'), company(id: 'company', description: 'company name'), creature(id: 'creat', description: 'creature'), datedTerm(id: 'dated', description: 'dated term'), deity(id: 'dei', description: 'deity'), derogatory(id: 'derog', description: 'derogatory'), document(id: 'doc', description: 'document'), euphemistic(id: 'euph', description: 'euphemistic'), event(id: 'ev', description: 'event'), familiarLanguage(id: 'fam', description: 'familiar language'), female(id: 'fem', description: 'female term, language, or name'), fiction(id: 'fict', description: 'fiction'), formal(id: 'form', description: 'formal or literary term'), givenName( id: 'given', description: 'given name or forename, gender not specified', ), group(id: 'group', description: 'group'), historical(id: 'hist', description: 'historical term'), honorific( id: 'hon', description: 'honorific or respectful (sonkeigo) language', ), humble(id: 'hum', description: 'humble (kenjougo) language'), idiomatic(id: 'id', description: 'idiomatic expression'), jocular(id: 'joc', description: 'jocular, humorous term'), legend(id: 'leg', description: 'legend'), mangaSlang(id: 'm-sl', description: 'manga slang'), male(id: 'male', description: 'male term, language, or name'), mythology(id: 'myth', description: 'mythology'), internetSlang(id: 'net-sl', description: 'Internet slang'), object(id: 'obj', description: 'object'), obsolete(id: 'obs', description: 'obsolete term'), onomatopoeic(id: 'on-mim', description: 'onomatopoeic or mimetic word'), organizationName(id: 'organization', description: 'organization name'), other(id: 'oth', description: 'other'), personName(id: 'person', description: 'full name of a particular person'), placeName(id: 'place', description: 'place name'), poetical(id: 'poet', description: 'poetical term'), polite(id: 'pol', description: 'polite (teineigo) language'), product(id: 'product', description: 'product name'), proverb(id: 'proverb', description: 'proverb'), quotation(id: 'quote', description: 'quotation'), rare(id: 'rare', description: 'rare term'), religion(id: 'relig', description: 'religion'), sensitive(id: 'sens', description: 'sensitive'), service(id: 'serv', description: 'service'), ship(id: 'ship', description: 'ship name'), slang(id: 'sl', description: 'slang'), railwayStation(id: 'station', description: 'railway station'), surname(id: 'surname', description: 'family or surname'), onlyKana(id: 'uk', description: 'word usually written using kana alone'), unclassifiedName(id: 'unclass', description: 'unclassified name'), vulgar(id: 'vulg', description: 'vulgar expression or word'), workOfArt( id: 'work', description: 'work of art, literature, music, etc. name', ), xRated( id: 'X', description: 'rude or X-rated term (not displayed in educational software)', ), yojijukugo(id: 'yoji', description: 'yojijukugo'); final String id; final String description; const JMdictMisc({required this.id, required this.description}); static JMdictMisc fromId(String id) => JMdictMisc.values.firstWhere( (e) => e.id == id, orElse: () => throw Exception('Unknown id: $id'), ); Map toJson() => {'id': id, 'description': description}; static JMdictMisc fromJson(Map json) => JMdictMisc.values.firstWhere( (e) => e.id == json['id'], orElse: () => throw Exception('Unknown id: ${json['id']}'), ); }