zulip/tools/setup/emoji/emoji_names.py

1532 lines
93 KiB
Python

from typing import Any, Dict
EMOJI_NAME_MAPS = {
# seems like best emoji for happy
'1f600': {'canonical_name': 'grinning', 'aliases': ['happy']},
'1f603': {'canonical_name': 'smiley', 'aliases': []},
# the google emoji for this is not great, so made People/9 'smile' and
# renamed this one
'1f604': {'canonical_name': 'big_smile', 'aliases': []},
# from gemoji/unicode
'1f601': {'canonical_name': 'grinning_face_with_smiling_eyes', 'aliases': []},
# satisfied doesn't seem like a good description of these images
'1f606': {'canonical_name': 'laughing', 'aliases': ['lol']},
'1f605': {'canonical_name': 'sweat_smile', 'aliases': []},
# laughter_tears from https://beebom.com/emoji-meanings/
'1f602': {'canonical_name': 'joy', 'aliases': ['tears', 'laughter_tears']},
'1f923': {'canonical_name': 'rolling_on_the_floor_laughing', 'aliases': ['rofl']},
# not sure how the glpyhs match relaxed, but both iamcal and gemoji have it
'263a': {'canonical_name': 'smile', 'aliases': ['relaxed']},
'1f60a': {'canonical_name': 'blush', 'aliases': []},
# halo comes from gemoji/unicode
'1f607': {'canonical_name': 'innocent', 'aliases': ['halo']},
'1f642': {'canonical_name': 'slight_smile', 'aliases': []},
'1f643': {'canonical_name': 'upside_down', 'aliases': ['oops']},
'1f609': {'canonical_name': 'wink', 'aliases': []},
'1f60c': {'canonical_name': 'relieved', 'aliases': []},
# in_love from https://beebom.com/emoji-meanings/
'1f60d': {'canonical_name': 'heart_eyes', 'aliases': ['in_love']},
# blow_a_kiss from https://beebom.com/emoji-meanings/
'1f618': {'canonical_name': 'heart_kiss', 'aliases': ['blow_a_kiss']},
'1f617': {'canonical_name': 'kiss', 'aliases': []},
'1f619': {'canonical_name': 'kiss_smiling_eyes', 'aliases': []},
'1f61a': {'canonical_name': 'kiss_with_blush', 'aliases': []},
'1f60b': {'canonical_name': 'yum', 'aliases': []},
# crazy from https://beebom.com/emoji-meanings/, seems like best emoji for
# joking
'1f61c': {'canonical_name': 'stuck_out_tongue_wink', 'aliases': ['joking', 'crazy']},
'1f61d': {'canonical_name': 'stuck_out_tongue', 'aliases': []},
# don't really need two stuck_out_tongues (see People/23), so chose
# something else that could fit
'1f61b': {'canonical_name': 'mischievous', 'aliases': []},
# kaching suggested by user
'1f911': {'canonical_name': 'money_face', 'aliases': ['kaching']},
# arms_open seems like a natural addition
'1f917': {'canonical_name': 'hug', 'aliases': ['arms_open']},
'1f913': {'canonical_name': 'nerd', 'aliases': ['geek']},
# several sites suggested this was used for "cool", but cool is taken by
# Symbols/137
'1f60e': {'canonical_name': 'sunglasses', 'aliases': []},
'1f921': {'canonical_name': 'clown', 'aliases': []},
'1f920': {'canonical_name': 'cowboy', 'aliases': []},
# https://emojipedia.org/smirking-face/
'1f60f': {'canonical_name': 'smirk', 'aliases': ['smug']},
'1f612': {'canonical_name': 'unamused', 'aliases': []},
'1f61e': {'canonical_name': 'disappointed', 'aliases': []},
# see People/41
'1f614': {'canonical_name': 'pensive', 'aliases': ['tired']},
'1f61f': {'canonical_name': 'worried', 'aliases': []},
# these seem to better capture the glyphs. This is also what :/ turns into
# in google hangouts
'1f615': {'canonical_name': 'oh_no', 'aliases': ['half_frown', 'concerned', 'confused']},
'1f641': {'canonical_name': 'frown', 'aliases': ['slight_frown']},
# sad seemed better than putting another frown as the primary name (see
# People/37)
'2639': {'canonical_name': 'sad', 'aliases': ['big_frown']},
# helpless from https://emojipedia.org/persevering-face/
'1f623': {'canonical_name': 'persevere', 'aliases': ['helpless']},
# agony seemed like a good addition
'1f616': {'canonical_name': 'confounded', 'aliases': ['agony']},
# tired doesn't really match any of the 4 images, put it on People/34
'1f62b': {'canonical_name': 'anguish', 'aliases': []},
# distraught from https://beebom.com/emoji-meanings/
'1f629': {'canonical_name': 'weary', 'aliases': ['distraught']},
'1f624': {'canonical_name': 'triumph', 'aliases': []},
'1f620': {'canonical_name': 'angry', 'aliases': []},
# mad and grumpy from https://beebom.com/emoji-meanings/, very_angry to
# parallel People/44 and show up in typeahead for "ang.."
'1f621': {'canonical_name': 'rage', 'aliases': ['mad', 'grumpy', 'very_angry']},
# blank from https://beebom.com/emoji-meanings/, speechless and poker_face
# seemed like good ideas for this
'1f636': {'canonical_name': 'speechless', 'aliases': ['no_mouth', 'blank', 'poker_face']},
'1f610': {'canonical_name': 'neutral', 'aliases': []},
'1f611': {'canonical_name': 'expressionless', 'aliases': []},
'1f62f': {'canonical_name': 'hushed', 'aliases': []},
'1f626': {'canonical_name': 'frowning', 'aliases': []},
# pained from https://beebom.com/emoji-meanings/
'1f627': {'canonical_name': 'anguished', 'aliases': ['pained']},
# surprise from https://emojipedia.org/face-with-open-mouth/
'1f62e': {'canonical_name': 'open_mouth', 'aliases': ['surprise']},
'1f632': {'canonical_name': 'astonished', 'aliases': []},
'1f635': {'canonical_name': 'dizzy', 'aliases': []},
# the alternates are from https://emojipedia.org/flushed-face/. shame
# doesn't work with the google emoji
'1f633': {'canonical_name': 'flushed', 'aliases': ['embarrassed', 'blushing']},
'1f631': {'canonical_name': 'scream', 'aliases': []},
# scared from https://emojipedia.org/fearful-face/, shock seemed like a
# nice addition
'1f628': {'canonical_name': 'fear', 'aliases': ['scared', 'shock']},
'1f630': {'canonical_name': 'cold_sweat', 'aliases': []},
'1f622': {'canonical_name': 'cry', 'aliases': []},
# stressed from https://beebom.com/emoji-meanings/. The internet generally
# didn't seem to know what to make of the dissapointed_relieved name, and I
# got the sense it wasn't an emotion that was often used. Hence replaced it
# with exhausted.
'1f625': {'canonical_name': 'exhausted', 'aliases': ['disappointed_relieved', 'stressed']},
'1f924': {'canonical_name': 'drooling', 'aliases': []},
'1f62d': {'canonical_name': 'sob', 'aliases': []},
'1f613': {'canonical_name': 'sweat', 'aliases': []},
'1f62a': {'canonical_name': 'sleepy', 'aliases': []},
'1f634': {'canonical_name': 'sleeping', 'aliases': []},
'1f644': {'canonical_name': 'rolling_eyes', 'aliases': []},
'1f914': {'canonical_name': 'thinking', 'aliases': []},
'1f925': {'canonical_name': 'lying', 'aliases': []},
# seems like best emoji for nervous/anxious
'1f62c': {'canonical_name': 'grimacing', 'aliases': ['nervous', 'anxious']},
# zip_it from http://mashable.com/2015/10/23/ios-9-1-emoji-guide,
# lips_sealed from https://emojipedia.org/zipper-mouth-face/, rest seemed
# like reasonable additions
'1f910': {'canonical_name': 'silence', 'aliases': ['quiet', 'hush', 'zip_it', 'lips_are_sealed']},
# queasy seemed like a natural addition
'1f922': {'canonical_name': 'nauseated', 'aliases': ['queasy']},
'1f927': {'canonical_name': 'sneezing', 'aliases': []},
# cant_talk from https://beebom.com/emoji-meanings/
'1f637': {'canonical_name': 'cant_talk', 'aliases': ['mask']},
# flu from http://mashable.com/2015/10/23/ios-9-1-emoji-guide, sick from
# https://emojipedia.org/face-with-thermometer/, face_with_thermometer so
# it shows up in typeahead (thermometer taken by Objects/82)
'1f912': {'canonical_name': 'sick', 'aliases': ['flu', 'face_with_thermometer']},
# hurt and injured from https://beebom.com/emoji-meanings/. Chose hurt as
# primary since I think it can cover a wider set of things (e.g. emotional
# hurt)
'1f915': {'canonical_name': 'hurt', 'aliases': ['head_bandage', 'injured']},
# devil from https://emojipedia.org/smiling-face-with-horns/,
# smiling_face_with_horns from gemoji/unicode
'1f608': {'canonical_name': 'smiling_devil', 'aliases': ['smiling_imp', 'smiling_face_with_horns']},
# angry_devil from https://beebom.com/emoji-meanings/
'1f47f': {'canonical_name': 'devil', 'aliases': ['imp', 'angry_devil']},
'1f479': {'canonical_name': 'ogre', 'aliases': []},
'1f47a': {'canonical_name': 'goblin', 'aliases': []},
# pile_of_poo from gemoji/unicode
'1f4a9': {'canonical_name': 'poop', 'aliases': ['pile_of_poo']},
# alternates seemed like reasonable additions
'1f47b': {'canonical_name': 'ghost', 'aliases': ['boo', 'spooky', 'haunted']},
'1f480': {'canonical_name': 'skull', 'aliases': []},
# alternates seemed like reasonable additions
'2620': {'canonical_name': 'skull_and_crossbones', 'aliases': ['pirate', 'death', 'hazard', 'toxic', 'poison']}, # ignorelongline
# ufo seemed like a natural addition
'1f47d': {'canonical_name': 'alien', 'aliases': ['ufo']},
'1f47e': {'canonical_name': 'space_invader', 'aliases': []},
'1f916': {'canonical_name': 'robot', 'aliases': []},
# pumpkin seemed like a natural addition
'1f383': {'canonical_name': 'jack-o-lantern', 'aliases': ['pumpkin']},
'1f63a': {'canonical_name': 'smiley_cat', 'aliases': []},
'1f638': {'canonical_name': 'smile_cat', 'aliases': []},
'1f639': {'canonical_name': 'joy_cat', 'aliases': []},
'1f63b': {'canonical_name': 'heart_eyes_cat', 'aliases': []},
# smug_cat to parallel People/31
'1f63c': {'canonical_name': 'smirk_cat', 'aliases': ['smug_cat']},
'1f63d': {'canonical_name': 'kissing_cat', 'aliases': []},
# weary_cat from unicode/gemoji
'1f640': {'canonical_name': 'scream_cat', 'aliases': ['weary_cat']},
'1f63f': {'canonical_name': 'crying_cat', 'aliases': []},
# angry_cat to better parallel People/45
'1f63e': {'canonical_name': 'angry_cat', 'aliases': ['pouting_cat']},
'1f450': {'canonical_name': 'open_hands', 'aliases': []},
# praise from
# https://emojipedia.org/person-raising-both-hands-in-celebration/
'1f64c': {'canonical_name': 'raised_hands', 'aliases': ['praise']},
# applause from https://emojipedia.org/clapping-hands-sign/
'1f44f': {'canonical_name': 'clap', 'aliases': ['applause']},
# welcome and thank_you from
# https://emojipedia.org/person-with-folded-hands/, namaste from indian
# culture
'1f64f': {'canonical_name': 'pray', 'aliases': ['welcome', 'thank_you', 'namaste']},
# done_deal seems like a natural addition
'1f91d': {'canonical_name': 'handshake', 'aliases': ['done_deal']},
'1f44d': {'canonical_name': '+1', 'aliases': ['thumbs_up']},
'1f44e': {'canonical_name': '-1', 'aliases': ['thumbs_down']},
# fist_bump from https://beebom.com/emoji-meanings/
'1f44a': {'canonical_name': 'fist_bump', 'aliases': ['punch']},
# used as power in social justice movements
'270a': {'canonical_name': 'fist', 'aliases': ['power']},
'1f91b': {'canonical_name': 'left_fist', 'aliases': []},
'1f91c': {'canonical_name': 'right_fist', 'aliases': []},
'1f91e': {'canonical_name': 'fingers_crossed', 'aliases': []},
# seems to be mostly used as peace on twitter
'270c': {'canonical_name': 'peace_sign', 'aliases': ['victory']},
# https://emojipedia.org/sign-of-the-horns/
'1f918': {'canonical_name': 'rock_on', 'aliases': ['sign_of_the_horns']},
# got_it seems like a natural addition
'1f44c': {'canonical_name': 'ok', 'aliases': ['got_it']},
'1f448': {'canonical_name': 'point_left', 'aliases': []},
'1f449': {'canonical_name': 'point_right', 'aliases': []},
# :this: is a way of emphasizing the previous message. point_up instead of
# point_up_2 so that point_up better matches the other point_*s
'1f446': {'canonical_name': 'point_up', 'aliases': ['this']},
'1f447': {'canonical_name': 'point_down', 'aliases': []},
# People/114 is point_up. These seemed better than naming it point_up_2,
# and point_of_information means it will come up in typeahead for 'point'
'261d': {'canonical_name': 'wait_one_second', 'aliases': ['point_of_information', 'asking_a_question']},
'270b': {'canonical_name': 'hand', 'aliases': ['raised_hand']},
# seems like best emoji for stop, raised_back_of_hand doesn't seem that
# useful
'1f91a': {'canonical_name': 'stop', 'aliases': []},
# seems like best emoji for high_five, raised_hand_with_fingers_splayed
# doesn't seem that useful
'1f590': {'canonical_name': 'high_five', 'aliases': ['palm']},
# http://mashable.com/2015/10/23/ios-9-1-emoji-guide
'1f596': {'canonical_name': 'spock', 'aliases': ['live_long_and_prosper']},
# People/119 is a better 'hi', but 'hi' will never show up in the typeahead
# due to 'high_five'
'1f44b': {'canonical_name': 'wave', 'aliases': ['hello', 'hi']},
'1f919': {'canonical_name': 'call_me', 'aliases': []},
# flexed_biceps from gemoji/unicode, strong seemed like a good addition
'1f4aa': {'canonical_name': 'muscle', 'aliases': []},
'1f595': {'canonical_name': 'middle_finger', 'aliases': []},
'270d': {'canonical_name': 'writing', 'aliases': []},
'1f933': {'canonical_name': 'selfie', 'aliases': []},
# Couldn't figure out why iamcal chose nail_care. unicode uses nail_polish,
# gemoji uses both
'1f485': {'canonical_name': 'nail_polish', 'aliases': ['nail_care']},
'1f48d': {'canonical_name': 'ring', 'aliases': []},
'1f484': {'canonical_name': 'lipstick', 'aliases': []},
# People/18 seems like a better kiss for most circumstances
'1f48b': {'canonical_name': 'lipstick_kiss', 'aliases': []},
# mouth from gemoji/unicode
'1f444': {'canonical_name': 'lips', 'aliases': ['mouth']},
'1f445': {'canonical_name': 'tongue', 'aliases': []},
'1f442': {'canonical_name': 'ear', 'aliases': []},
'1f443': {'canonical_name': 'nose', 'aliases': []},
# seems a better feet than Nature/86 (paw_prints)
'1f463': {'canonical_name': 'footprints', 'aliases': ['feet']},
'1f441': {'canonical_name': 'eye', 'aliases': []},
# seemed the best emoji for looking
'1f440': {'canonical_name': 'eyes', 'aliases': ['looking']},
'1f5e3': {'canonical_name': 'speaking_head', 'aliases': []},
# shadow seems like a good addition
'1f464': {'canonical_name': 'silhouette', 'aliases': ['shadow']},
# to parallel People/139
'1f465': {'canonical_name': 'silhouettes', 'aliases': ['shadows']},
'1f476': {'canonical_name': 'baby', 'aliases': []},
'1f466': {'canonical_name': 'boy', 'aliases': []},
'1f467': {'canonical_name': 'girl', 'aliases': []},
'1f468': {'canonical_name': 'man', 'aliases': []},
'1f469': {'canonical_name': 'woman', 'aliases': []},
# It's used on twitter a bunch, either when showing off hair, or in a way
# where People/144 would substitute. It'd be nice if there were another
# emoji one could use for "good hair", but I think not a big loss to not
# have one for zulip, and not worth the eurocentrism.
# '1f471': {'canonical_name': 'X', 'aliases': ['person_with_blond_hair']},
# Added elderly since I think some people prefer that term
'1f474': {'canonical_name': 'older_man', 'aliases': ['elderly_man']},
# Added elderly since I think some people prefer that term
'1f475': {'canonical_name': 'older_woman', 'aliases': ['elderly_woman']},
'1f472': {'canonical_name': 'gua_pi_mao', 'aliases': []},
'1f473': {'canonical_name': 'turban', 'aliases': []},
# police seems like a more polite term, and matches the unicode
'1f46e': {'canonical_name': 'police', 'aliases': ['cop']},
'1f477': {'canonical_name': 'construction_worker', 'aliases': []},
'1f482': {'canonical_name': 'guard', 'aliases': []},
# detective from gemoji, sneaky from
# http://mashable.com/2015/10/23/ios-9-1-emoji-guide/, agent seems a
# reasonable addition
'1f575': {'canonical_name': 'detective', 'aliases': ['spy', 'sleuth', 'agent', 'sneaky']},
# mrs_claus from https://emojipedia.org/mother-christmas/
'1f936': {'canonical_name': 'mother_christmas', 'aliases': ['mrs_claus']},
'1f385': {'canonical_name': 'santa', 'aliases': []},
'1f478': {'canonical_name': 'princess', 'aliases': []},
'1f934': {'canonical_name': 'prince', 'aliases': []},
'1f470': {'canonical_name': 'bride', 'aliases': []},
'1f935': {'canonical_name': 'tuxedo', 'aliases': []},
'1f47c': {'canonical_name': 'angel', 'aliases': []},
# expecting seems like a good addition
'1f930': {'canonical_name': 'pregnant', 'aliases': ['expecting']},
'1f647': {'canonical_name': 'bow', 'aliases': []},
# mostly used sassily. person_tipping_hand from
# https://emojipedia.org/information-desk-person/
'1f481': {'canonical_name': 'information_desk_person', 'aliases': ['person_tipping_hand']},
# no_signal to parallel People/207. Nope seems like a reasonable addition
'1f645': {'canonical_name': 'no_signal', 'aliases': ['nope']},
'1f646': {'canonical_name': 'ok_signal', 'aliases': []},
# pick_me seems like a good addition
'1f64b': {'canonical_name': 'raising_hand', 'aliases': ['pick_me']},
'1f926': {'canonical_name': 'face_palm', 'aliases': []},
'1f937': {'canonical_name': 'shrug', 'aliases': []},
'1f64e': {'canonical_name': 'person_pouting', 'aliases': []},
'1f64d': {'canonical_name': 'person_frowning', 'aliases': []},
'1f487': {'canonical_name': 'haircut', 'aliases': []},
'1f486': {'canonical_name': 'massage', 'aliases': []},
# hover seems like a reasonable addition
'1f574': {'canonical_name': 'levitating', 'aliases': ['hover']},
'1f483': {'canonical_name': 'dancer', 'aliases': []},
'1f57a': {'canonical_name': 'dancing', 'aliases': ['disco']},
'1f46f': {'canonical_name': 'dancers', 'aliases': []},
# pedestrian seems like reasonable addition
'1f6b6': {'canonical_name': 'walking', 'aliases': ['pedestrian']},
'1f3c3': {'canonical_name': 'running', 'aliases': ['runner']},
'1f46b': {'canonical_name': 'man_and_woman_holding_hands', 'aliases': ['man_and_woman_couple']},
# to parallel People/234
'1f46d': {'canonical_name': 'two_women_holding_hands', 'aliases': ['women_couple']},
# to parallel People/234
'1f46c': {'canonical_name': 'two_men_holding_hands', 'aliases': ['men_couple']},
# no need for man-woman-boy, since we aren't including the other family
# combos
'1f46a': {'canonical_name': 'family', 'aliases': []},
'1f45a': {'canonical_name': 'clothing', 'aliases': []},
'1f455': {'canonical_name': 'shirt', 'aliases': ['tshirt']},
# denim seems like a good addition
'1f456': {'canonical_name': 'jeans', 'aliases': ['denim']},
# tie is shorter, and a bit more general
'1f454': {'canonical_name': 'tie', 'aliases': []},
'1f457': {'canonical_name': 'dress', 'aliases': []},
'1f459': {'canonical_name': 'bikini', 'aliases': []},
'1f458': {'canonical_name': 'kimono', 'aliases': []},
# I feel like this is always used in the plural
'1f460': {'canonical_name': 'high_heels', 'aliases': []},
# flip_flops seems like a reasonable addition
'1f461': {'canonical_name': 'sandal', 'aliases': ['flip_flops']},
'1f462': {'canonical_name': 'boot', 'aliases': []},
'1f45e': {'canonical_name': 'shoe', 'aliases': []},
# running_shoe is from gemoji, sneaker seems like a reasonable addition
'1f45f': {'canonical_name': 'athletic_shoe', 'aliases': ['sneaker', 'running_shoe']},
'1f452': {'canonical_name': 'hat', 'aliases': []},
'1f3a9': {'canonical_name': 'top_hat', 'aliases': []},
# graduate seems like a better word for this
'1f393': {'canonical_name': 'graduate', 'aliases': ['mortar_board']},
# king and queen seem like good additions
'1f451': {'canonical_name': 'crown', 'aliases': ['queen', 'king']},
# safety and invincibility inspired by
# http://mashable.com/2015/10/23/ios-9-1-emoji-guide. hard_hat and
# rescue_worker seem like good additions
'26d1': {'canonical_name': 'helmet', 'aliases': ['hard_hat', 'rescue_worker', 'safety_first', 'invincible']}, # ignorelongline
# backpack from gemoji, dominates satchel on google trends
'1f392': {'canonical_name': 'backpack', 'aliases': ['satchel']},
'1f45d': {'canonical_name': 'pouch', 'aliases': []},
'1f45b': {'canonical_name': 'purse', 'aliases': []},
'1f45c': {'canonical_name': 'handbag', 'aliases': []},
'1f4bc': {'canonical_name': 'briefcase', 'aliases': []},
# glasses seems a more common term than eyeglasses, spectacles seems like a
# reasonable synonym to add
'1f453': {'canonical_name': 'glasses', 'aliases': ['spectacles']},
'1f576': {'canonical_name': 'dark_sunglasses', 'aliases': []},
'1f302': {'canonical_name': 'closed_umbrella', 'aliases': []},
'2602': {'canonical_name': 'umbrella', 'aliases': []},
# Some animals have a unicode codepoint "<animal>", some have a codepoint
# "<animal> face", and some have both. If an animal has just a single
# codepoint, we call it <animal>, regardless of what the codepoint is. If
# an animal has both, we call the "<animal>" codepoint <animal>, and come
# up with something else useful-seeming for the "<animal> face" codepoint.
# The reason we chose "<animal> face" for the non-standard name (instead of
# giving "<animal>" the non-standard name, as iamcal does) is because the
# apple emoji for the "<animal>"s are too realistic. E.g. Apple's Nature/76
# is less plausibly a puppy than this one.
'1f436': {'canonical_name': 'puppy', 'aliases': []},
'1f431': {'canonical_name': 'kitten', 'aliases': []},
'1f42d': {'canonical_name': 'dormouse', 'aliases': []},
'1f439': {'canonical_name': 'hamster', 'aliases': []},
'1f430': {'canonical_name': 'bunny', 'aliases': []},
'1f98a': {'canonical_name': 'fox', 'aliases': []},
'1f43b': {'canonical_name': 'bear', 'aliases': []},
'1f43c': {'canonical_name': 'panda', 'aliases': []},
'1f428': {'canonical_name': 'koala', 'aliases': []},
'1f42f': {'canonical_name': 'tiger_cub', 'aliases': []},
'1f981': {'canonical_name': 'lion', 'aliases': []},
'1f42e': {'canonical_name': 'calf', 'aliases': []},
'1f437': {'canonical_name': 'piglet', 'aliases': []},
'1f43d': {'canonical_name': 'pig_nose', 'aliases': []},
'1f438': {'canonical_name': 'frog', 'aliases': []},
'1f435': {'canonical_name': 'monkey_face', 'aliases': []},
'1f648': {'canonical_name': 'see_no_evil', 'aliases': []},
'1f649': {'canonical_name': 'hear_no_evil', 'aliases': []},
'1f64a': {'canonical_name': 'speak_no_evil', 'aliases': []},
'1f412': {'canonical_name': 'monkey', 'aliases': []},
# cluck seemed like a good addition
'1f414': {'canonical_name': 'chicken', 'aliases': ['cluck']},
'1f427': {'canonical_name': 'penguin', 'aliases': []},
'1f426': {'canonical_name': 'bird', 'aliases': []},
'1f424': {'canonical_name': 'chick', 'aliases': ['baby_chick']},
'1f423': {'canonical_name': 'hatching', 'aliases': ['hatching_chick']},
# http://www.iemoji.com/view/emoji/668/animals-nature/front-facing-baby-chick
'1f425': {'canonical_name': 'new_baby', 'aliases': []},
'1f986': {'canonical_name': 'duck', 'aliases': []},
'1f985': {'canonical_name': 'eagle', 'aliases': []},
'1f989': {'canonical_name': 'owl', 'aliases': []},
'1f987': {'canonical_name': 'bat', 'aliases': []},
'1f43a': {'canonical_name': 'wolf', 'aliases': []},
'1f417': {'canonical_name': 'boar', 'aliases': []},
'1f434': {'canonical_name': 'pony', 'aliases': []},
'1f984': {'canonical_name': 'unicorn', 'aliases': []},
# buzz seemed like a reasonable addition
'1f41d': {'canonical_name': 'bee', 'aliases': ['buzz', 'honeybee']},
# caterpillar seemed like a reasonable addition
'1f41b': {'canonical_name': 'bug', 'aliases': ['caterpillar']},
'1f98b': {'canonical_name': 'butterfly', 'aliases': []},
'1f40c': {'canonical_name': 'snail', 'aliases': []},
# spiral_shell from unicode/gemoji, the others seemed like reasonable
# additions
'1f41a': {'canonical_name': 'shell', 'aliases': ['seashell', 'conch', 'spiral_shell']},
# unicode/gemoji have lady_beetle; hopefully with ladybug we get both the
# people that prefer lady_beetle (with beetle) and ladybug. There is also
# ladybird, but seems a bit much for this to complete for bird.
'1f41e': {'canonical_name': 'beetle', 'aliases': ['ladybug']},
'1f41c': {'canonical_name': 'ant', 'aliases': []},
'1f577': {'canonical_name': 'spider', 'aliases': []},
'1f578': {'canonical_name': 'web', 'aliases': ['spider_web']},
# tortoise seemed like a reasonable addition
'1f422': {'canonical_name': 'turtle', 'aliases': ['tortoise']},
# put in a few animal sounds, including this one
'1f40d': {'canonical_name': 'snake', 'aliases': ['hiss']},
'1f98e': {'canonical_name': 'lizard', 'aliases': ['gecko']},
'1f982': {'canonical_name': 'scorpion', 'aliases': []},
'1f980': {'canonical_name': 'crab', 'aliases': []},
'1f991': {'canonical_name': 'squid', 'aliases': []},
'1f419': {'canonical_name': 'octopus', 'aliases': []},
'1f990': {'canonical_name': 'shrimp', 'aliases': []},
'1f420': {'canonical_name': 'tropical_fish', 'aliases': []},
'1f41f': {'canonical_name': 'fish', 'aliases': []},
'1f421': {'canonical_name': 'blowfish', 'aliases': []},
'1f42c': {'canonical_name': 'dolphin', 'aliases': ['flipper']},
'1f988': {'canonical_name': 'shark', 'aliases': []},
'1f433': {'canonical_name': 'whale', 'aliases': []},
# https://emojipedia.org/whale/
'1f40b': {'canonical_name': 'humpback_whale', 'aliases': []},
'1f40a': {'canonical_name': 'crocodile', 'aliases': []},
'1f406': {'canonical_name': 'leopard', 'aliases': []},
'1f405': {'canonical_name': 'tiger', 'aliases': []},
'1f403': {'canonical_name': 'water_buffalo', 'aliases': []},
'1f402': {'canonical_name': 'ox', 'aliases': ['bull']},
'1f404': {'canonical_name': 'cow', 'aliases': []},
'1f98c': {'canonical_name': 'deer', 'aliases': []},
# https://emojipedia.org/dromedary-camel/
'1f42a': {'canonical_name': 'arabian_camel', 'aliases': []},
'1f42b': {'canonical_name': 'camel', 'aliases': []},
'1f418': {'canonical_name': 'elephant', 'aliases': []},
'1f98f': {'canonical_name': 'rhinoceros', 'aliases': []},
'1f98d': {'canonical_name': 'gorilla', 'aliases': []},
'1f40e': {'canonical_name': 'horse', 'aliases': []},
'1f416': {'canonical_name': 'pig', 'aliases': ['oink']},
'1f410': {'canonical_name': 'goat', 'aliases': []},
'1f40f': {'canonical_name': 'ram', 'aliases': []},
'1f411': {'canonical_name': 'sheep', 'aliases': ['baa']},
'1f415': {'canonical_name': 'dog', 'aliases': ['woof']},
'1f429': {'canonical_name': 'poodle', 'aliases': []},
'1f408': {'canonical_name': 'cat', 'aliases': ['meow']},
# alarm seemed like a fun addition
'1f413': {'canonical_name': 'rooster', 'aliases': ['alarm', 'cock-a-doodle-doo']},
'1f983': {'canonical_name': 'turkey', 'aliases': []},
'1f54a': {'canonical_name': 'dove', 'aliases': ['dove_of_peace']},
'1f407': {'canonical_name': 'rabbit', 'aliases': []},
'1f401': {'canonical_name': 'mouse', 'aliases': []},
'1f400': {'canonical_name': 'rat', 'aliases': []},
'1f43f': {'canonical_name': 'chipmunk', 'aliases': []},
# paws seemed like reasonable addition. Put feet at People/135
'1f43e': {'canonical_name': 'paw_prints', 'aliases': ['paws']},
'1f409': {'canonical_name': 'dragon', 'aliases': []},
'1f432': {'canonical_name': 'dragon_face', 'aliases': []},
'1f335': {'canonical_name': 'cactus', 'aliases': []},
'1f384': {'canonical_name': 'holiday_tree', 'aliases': []},
'1f332': {'canonical_name': 'evergreen_tree', 'aliases': []},
'1f333': {'canonical_name': 'tree', 'aliases': ['deciduous_tree']},
'1f334': {'canonical_name': 'palm_tree', 'aliases': []},
# sprout seemed like a reasonable addition
'1f331': {'canonical_name': 'seedling', 'aliases': ['sprout']},
# seemed like the best emoji for plant
'1f33f': {'canonical_name': 'herb', 'aliases': ['plant']},
# clover seemed like a reasonable addition
'2618': {'canonical_name': 'shamrock', 'aliases': ['clover']},
# lucky seems more useful
'1f340': {'canonical_name': 'lucky', 'aliases': ['four_leaf_clover']},
'1f38d': {'canonical_name': 'bamboo', 'aliases': []},
# https://emojipedia.org/tanabata-tree/
'1f38b': {'canonical_name': 'wish_tree', 'aliases': ['tanabata_tree']},
# seemed like good additions. Used fall instead of autumn, since don't have
# the rest of the seasons, and could imagine someone using both meanings of
# fall.
'1f343': {'canonical_name': 'leaves', 'aliases': ['wind', 'fall']},
'1f342': {'canonical_name': 'fallen_leaf', 'aliases': []},
'1f341': {'canonical_name': 'maple_leaf', 'aliases': []},
'1f344': {'canonical_name': 'mushroom', 'aliases': []},
# harvest seems more useful
'1f33e': {'canonical_name': 'harvest', 'aliases': ['ear_of_rice']},
'1f490': {'canonical_name': 'bouquet', 'aliases': []},
# seems like the best emoji for flower
'1f337': {'canonical_name': 'tulip', 'aliases': ['flower']},
'1f339': {'canonical_name': 'rose', 'aliases': []},
# crushed suggest by a user
'1f940': {'canonical_name': 'wilted_flower', 'aliases': ['crushed']},
'1f33b': {'canonical_name': 'sunflower', 'aliases': []},
'1f33c': {'canonical_name': 'blossom', 'aliases': []},
'1f338': {'canonical_name': 'cherry_blossom', 'aliases': []},
'1f33a': {'canonical_name': 'hibiscus', 'aliases': []},
'1f30e': {'canonical_name': 'earth_americas', 'aliases': []},
'1f30d': {'canonical_name': 'earth_africa', 'aliases': []},
'1f30f': {'canonical_name': 'earth_asia', 'aliases': []},
'1f315': {'canonical_name': 'full_moon', 'aliases': []},
# too many useless moons. Don't seem to get much use on twitter, and clog
# up typeahead for moon.
# '1f316': {'canonical_name': 'X', 'aliases': ['waning_crescent_moon']},
# '1f317': {'canonical_name': 'X', 'aliases': ['last_quarter_moon']},
# '1f318': {'canonical_name': 'X', 'aliases': ['waning_crescent_moon']},
'1f311': {'canonical_name': 'new_moon', 'aliases': []},
# '1f312': {'canonical_name': 'X', 'aliases': ['waxing_crescent_moon']},
# '1f313': {'canonical_name': 'X', 'aliases': ['first_quarter_moon']},
'1f314': {'canonical_name': 'waxing_moon', 'aliases': []},
'1f31a': {'canonical_name': 'new_moon_face', 'aliases': []},
'1f31d': {'canonical_name': 'moon_face', 'aliases': []},
'1f31e': {'canonical_name': 'sun_face', 'aliases': []},
# goodnight seems way more useful
'1f31b': {'canonical_name': 'goodnight', 'aliases': []},
# '1f31c': {'canonical_name': 'X', 'aliases': ['last_quarter_moon_with_face']},
# seems like the best emoji for moon
'1f319': {'canonical_name': 'moon', 'aliases': []},
# dizzy taken by People/54, had to come up with something else
'1f4ab': {'canonical_name': 'seeing_stars', 'aliases': []},
'2b50': {'canonical_name': 'star', 'aliases': []},
# glowing_star from gemoji/unicode
'1f31f': {'canonical_name': 'glowing_star', 'aliases': []},
# glamour seems like a reasonable addition
'2728': {'canonical_name': 'sparkles', 'aliases': ['glamour']},
# high_voltage from gemoji/unicode
'26a1': {'canonical_name': 'high_voltage', 'aliases': ['zap']},
# https://emojipedia.org/fire/
'1f525': {'canonical_name': 'fire', 'aliases': ['lit', 'hot', 'flame']},
# explosion and crash seem like reasonable additions
'1f4a5': {'canonical_name': 'boom', 'aliases': ['explosion', 'crash', 'collision']},
# meteor seems like a reasonable addition
'2604': {'canonical_name': 'comet', 'aliases': ['meteor']},
'2600': {'canonical_name': 'sunny', 'aliases': []},
'1f324': {'canonical_name': 'mostly_sunny', 'aliases': []},
# partly_cloudy for the glass half empty people
'26c5': {'canonical_name': 'partly_sunny', 'aliases': ['partly_cloudy']},
'1f325': {'canonical_name': 'cloudy', 'aliases': []},
# sunshowers seems like a more fun term
'1f326': {'canonical_name': 'sunshowers', 'aliases': ['sun_and_rain', 'partly_sunny_with_rain']},
# pride and lgbtq seem like reasonable additions
'1f308': {'canonical_name': 'rainbow', 'aliases': ['pride', 'lgbtq']},
# overcast seems like a good addition
'2601': {'canonical_name': 'cloud', 'aliases': ['overcast']},
# suggested by user typing these into their typeahead.
'1f327': {'canonical_name': 'rainy', 'aliases': ['soaked', 'drenched']},
# thunderstorm seems better for this emoji, and thunder_and_rain more
# evocative than thunder_cloud_and_rain
'26c8': {'canonical_name': 'thunderstorm', 'aliases': ['thunder_and_rain']},
# lightning_storm seemed better than lightning_cloud
'1f329': {'canonical_name': 'lightning', 'aliases': ['lightning_storm']},
# snowy to parallel sunny, cloudy, etc; snowstorm seems like a good
# addition
'1f328': {'canonical_name': 'snowy', 'aliases': ['snowstorm']},
'2603': {'canonical_name': 'snowman', 'aliases': []},
# don't need two snowmen. frosty is nice because it's a weather (primary
# benefit) and also a snowman (one that suffered from not having snow, in
# fact)
'26c4': {'canonical_name': 'frosty', 'aliases': []},
'2744': {'canonical_name': 'snowflake', 'aliases': []},
# the internet didn't seem to have a good use for this emoji. windy is a
# good weather that is otherwise not represented. mother_nature from
# https://emojipedia.org/wind-blowing-face/
'1f32c': {'canonical_name': 'windy', 'aliases': ['mother_nature']},
'1f4a8': {'canonical_name': 'dash', 'aliases': []},
# tornado_cloud comes from the unicode, but e.g. gemoji drops the cloud
'1f32a': {'canonical_name': 'tornado', 'aliases': []},
# hazy seemed like a good addition
'1f32b': {'canonical_name': 'fog', 'aliases': ['hazy']},
'1f30a': {'canonical_name': 'ocean', 'aliases': []},
# drop seems better than droplet, since could be used for its other
# meanings. water drop partly so that it shows up in typeahead for water
'1f4a7': {'canonical_name': 'drop', 'aliases': ['water_drop']},
'1f4a6': {'canonical_name': 'sweat_drops', 'aliases': []},
'2614': {'canonical_name': 'umbrella_with_rain', 'aliases': []},
'1f34f': {'canonical_name': 'green_apple', 'aliases': []},
'1f34e': {'canonical_name': 'apple', 'aliases': []},
'1f350': {'canonical_name': 'pear', 'aliases': []},
# An argument for not calling this orange is to save the color for a color
# swatch, but we can deal with that when it happens. Mandarin is from
# https://emojipedia.org/tangerine/, also like that it has a second meaning
'1f34a': {'canonical_name': 'orange', 'aliases': ['tangerine', 'mandarin']},
'1f34b': {'canonical_name': 'lemon', 'aliases': []},
'1f34c': {'canonical_name': 'banana', 'aliases': []},
'1f349': {'canonical_name': 'watermelon', 'aliases': []},
'1f347': {'canonical_name': 'grapes', 'aliases': []},
'1f353': {'canonical_name': 'strawberry', 'aliases': []},
'1f348': {'canonical_name': 'melon', 'aliases': []},
'1f352': {'canonical_name': 'cherries', 'aliases': []},
'1f351': {'canonical_name': 'peach', 'aliases': []},
'1f34d': {'canonical_name': 'pineapple', 'aliases': []},
'1f95d': {'canonical_name': 'kiwi', 'aliases': []},
'1f951': {'canonical_name': 'avocado', 'aliases': []},
'1f345': {'canonical_name': 'tomato', 'aliases': []},
'1f346': {'canonical_name': 'eggplant', 'aliases': []},
'1f952': {'canonical_name': 'cucumber', 'aliases': []},
'1f955': {'canonical_name': 'carrot', 'aliases': []},
# maize is from unicode
'1f33d': {'canonical_name': 'corn', 'aliases': ['maize']},
# chili_pepper seems like a reasonable addition
'1f336': {'canonical_name': 'hot_pepper', 'aliases': ['chili_pepper']},
'1f954': {'canonical_name': 'potato', 'aliases': []},
# yam seems better than sweet_potato, since we already have a potato (not a
# strong argument, but is better on the typeahead not to have emoji that
# share long prefixes)
'1f360': {'canonical_name': 'yam', 'aliases': ['sweet_potato']},
'1f330': {'canonical_name': 'chestnut', 'aliases': []},
'1f95c': {'canonical_name': 'peanuts', 'aliases': []},
'1f36f': {'canonical_name': 'honey', 'aliases': []},
'1f950': {'canonical_name': 'croissant', 'aliases': []},
'1f35e': {'canonical_name': 'bread', 'aliases': []},
'1f956': {'canonical_name': 'baguette', 'aliases': []},
'1f9c0': {'canonical_name': 'cheese', 'aliases': []},
'1f95a': {'canonical_name': 'egg', 'aliases': []},
# already have an egg in Foods/31, though I guess wouldn't be a big deal to
# add it here.
'1f373': {'canonical_name': 'cooking', 'aliases': []},
'1f953': {'canonical_name': 'bacon', 'aliases': []},
# there's no lunch and dinner, which is a small negative against adding
# breakfast
'1f95e': {'canonical_name': 'pancakes', 'aliases': ['breakfast']},
# There is already shrimp in Nature/51, and tempura seems like a better
# description
'1f364': {'canonical_name': 'tempura', 'aliases': []},
# drumstick seems like a better description
'1f357': {'canonical_name': 'drumstick', 'aliases': ['poultry']},
'1f356': {'canonical_name': 'meat', 'aliases': []},
'1f355': {'canonical_name': 'pizza', 'aliases': []},
'1f32d': {'canonical_name': 'hotdog', 'aliases': []},
'1f354': {'canonical_name': 'hamburger', 'aliases': []},
'1f35f': {'canonical_name': 'fries', 'aliases': []},
# https://emojipedia.org/stuffed-flatbread/
'1f959': {'canonical_name': 'doner_kebab', 'aliases': ['shawarma', 'souvlaki', 'stuffed_flatbread']},
'1f32e': {'canonical_name': 'taco', 'aliases': []},
'1f32f': {'canonical_name': 'burrito', 'aliases': []},
'1f957': {'canonical_name': 'salad', 'aliases': []},
# I think Foods/49 is a better :food:
'1f958': {'canonical_name': 'paella', 'aliases': []},
'1f35d': {'canonical_name': 'spaghetti', 'aliases': []},
# seems like the best noodles? maybe this should be Foods/47? Noodles seem
# like a bigger thing in east asia than in europe, so going with that.
'1f35c': {'canonical_name': 'ramen', 'aliases': ['noodles']},
# seems like the best :food:. Also a reasonable :soup:, though the google
# one is indeed more a pot of food (the unicode) than a soup
'1f372': {'canonical_name': 'food', 'aliases': ['soup', 'stew']},
# naruto is actual name, and I think don't need this to autocomplete for
# "fish"
'1f365': {'canonical_name': 'naruto', 'aliases': []},
'1f363': {'canonical_name': 'sushi', 'aliases': []},
'1f371': {'canonical_name': 'bento', 'aliases': []},
'1f35b': {'canonical_name': 'curry', 'aliases': []},
'1f35a': {'canonical_name': 'rice', 'aliases': []},
# onigiri is actual name, and I think don't need this to typeahead complete
# for "rice"
'1f359': {'canonical_name': 'onigiri', 'aliases': []},
# leaving rice_cracker in, so that we have something for cracker
'1f358': {'canonical_name': 'senbei', 'aliases': ['rice_cracker']},
'1f362': {'canonical_name': 'oden', 'aliases': []},
'1f361': {'canonical_name': 'dango', 'aliases': []},
'1f367': {'canonical_name': 'shaved_ice', 'aliases': []},
# seemed like the best emoji for gelato
'1f368': {'canonical_name': 'ice_cream', 'aliases': ['gelato']},
# already have ice_cream in Foods/60, and soft_serve seems like a
# potentially fun emoji to have in conjunction with ice_cream. Put in
# soft_ice_cream so it typeahead completes on ice_cream as well.
'1f366': {'canonical_name': 'soft_serve', 'aliases': ['soft_ice_cream']},
'1f370': {'canonical_name': 'cake', 'aliases': []},
'1f382': {'canonical_name': 'birthday', 'aliases': []},
# flan seems like a reasonable addition
'1f36e': {'canonical_name': 'custard', 'aliases': ['flan']},
'1f36d': {'canonical_name': 'lollipop', 'aliases': []},
'1f36c': {'canonical_name': 'candy', 'aliases': []},
'1f36b': {'canonical_name': 'chocolate', 'aliases': []},
'1f37f': {'canonical_name': 'popcorn', 'aliases': []},
# donut dominates doughnut on
# https://trends.google.com/trends/explore?q=doughnut,donut
'1f369': {'canonical_name': 'donut', 'aliases': ['doughnut']},
'1f36a': {'canonical_name': 'cookie', 'aliases': []},
'1f95b': {'canonical_name': 'milk', 'aliases': ['glass_of_milk']},
'1f37c': {'canonical_name': 'baby_bottle', 'aliases': []},
'2615': {'canonical_name': 'coffee', 'aliases': []},
'1f375': {'canonical_name': 'tea', 'aliases': []},
'1f376': {'canonical_name': 'sake', 'aliases': []},
'1f37a': {'canonical_name': 'beer', 'aliases': []},
'1f37b': {'canonical_name': 'beers', 'aliases': []},
'1f942': {'canonical_name': 'clink', 'aliases': ['toast']},
'1f377': {'canonical_name': 'wine', 'aliases': []},
# tumbler means something different in india, and don't want to use
# shot_glass given our policy of using school-age-appropriate terms
'1f943': {'canonical_name': 'small_glass', 'aliases': []},
'1f378': {'canonical_name': 'cocktail', 'aliases': []},
'1f379': {'canonical_name': 'tropical_drink', 'aliases': []},
'1f37e': {'canonical_name': 'champagne', 'aliases': []},
'1f944': {'canonical_name': 'spoon', 'aliases': []},
# Added eating_utensils so this would show up in typeahead for eat.
'1f374': {'canonical_name': 'fork_and_knife', 'aliases': ['eating_utensils']},
# Seems like the best emoji for hungry and meal. fork_and_knife_and_plate
# is from gemoji/unicode, and I think is better than the shorter iamcal
# version in this case. The rest just seemed like good additions.
'1f37d': {'canonical_name': 'hungry', 'aliases': ['meal', 'table_setting', 'fork_and_knife_with_plate', 'lets_eat']}, # ignorelongline
# most people interested in this sport call it football
'26bd': {'canonical_name': 'football', 'aliases': ['soccer']},
'1f3c0': {'canonical_name': 'basketball', 'aliases': []},
# to distinguish from Activity/1, but is also the unicode name
'1f3c8': {'canonical_name': 'american_football', 'aliases': []},
'26be': {'canonical_name': 'baseball', 'aliases': []},
'1f3be': {'canonical_name': 'tennis', 'aliases': []},
'1f3d0': {'canonical_name': 'volleyball', 'aliases': []},
'1f3c9': {'canonical_name': 'rugby', 'aliases': []},
# https://emojipedia.org/billiards/ suggests this is actually used for
# billiards, not for "unlucky" or "losing" or some other connotation of
# 8ball. The unicode name is billiards.
'1f3b1': {'canonical_name': 'billiards', 'aliases': ['pool', '8_ball']},
# ping pong is the unicode name, and seems slightly more popular on
# https://trends.google.com/trends/explore?q=table%20tennis,ping%20pong
'1f3d3': {'canonical_name': 'ping_pong', 'aliases': ['table_tennis']},
'1f3f8': {'canonical_name': 'badminton', 'aliases': []},
# gooooooooal seems more useful of a name, though arguably this isn't the
# best emoji for it
'1f945': {'canonical_name': 'gooooooooal', 'aliases': ['goal']},
'1f3d2': {'canonical_name': 'ice_hockey', 'aliases': []},
'1f3d1': {'canonical_name': 'field_hockey', 'aliases': []},
# would say bat, but taken by Nature/30
'1f3cf': {'canonical_name': 'cricket', 'aliases': ['cricket_bat']},
# hole_in_one seems like a more useful name to have. Sent golf to
# Activity/39
'26f3': {'canonical_name': 'hole_in_one', 'aliases': []},
# archery seems like a reasonable addition
'1f3f9': {'canonical_name': 'bow_and_arrow', 'aliases': ['archery']},
'1f3a3': {'canonical_name': 'fishing', 'aliases': []},
'1f94a': {'canonical_name': 'boxing_glove', 'aliases': []},
# keikogi and dogi are the actual names for this, I believe. black_belt is
# I think a more useful name here
'1f94b': {'canonical_name': 'black_belt', 'aliases': ['keikogi', 'dogi', 'martial_arts']},
'26f8': {'canonical_name': 'ice_skate', 'aliases': []},
'1f3bf': {'canonical_name': 'ski', 'aliases': []},
'26f7': {'canonical_name': 'skier', 'aliases': []},
'1f3c2': {'canonical_name': 'snowboarder', 'aliases': []},
# lift is both what lifters call it, and potentially can be used more
# generally than weight_lift. The others seemed like good additions.
'1f3cb': {'canonical_name': 'lift', 'aliases': ['work_out', 'weight_lift', 'gym']},
# The decisions on tenses here and in the rest of the sports section are
# mostly from gut feel. The unicode itself is all over the place.
'1f93a': {'canonical_name': 'fencing', 'aliases': []},
'1f93c': {'canonical_name': 'wrestling', 'aliases': []},
# seemed like reasonable additions
'1f938': {'canonical_name': 'cartwheel', 'aliases': ['acrobatics', 'gymnastics', 'tumbling']},
# seemed the best emoji for sports
'26f9': {'canonical_name': 'ball', 'aliases': ['sports']},
'1f93e': {'canonical_name': 'handball', 'aliases': []},
'1f3cc': {'canonical_name': 'golf', 'aliases': []},
'1f3c4': {'canonical_name': 'surf', 'aliases': []},
'1f3ca': {'canonical_name': 'swim', 'aliases': []},
'1f93d': {'canonical_name': 'water_polo', 'aliases': []},
# rest seem like reasonable additions
'1f6a3': {'canonical_name': 'rowboat', 'aliases': ['crew', 'sculling', 'rowing']},
# horse_riding seems like a reasonable addition
'1f3c7': {'canonical_name': 'horse_racing', 'aliases': ['horse_riding']},
# at least in the US: this = cyclist, Activity/53 = mountain biker, and
# motorcyclist = biker. Mainly from googling around and personal
# experience. E.g. http://grammarist.com/usage/cyclist-biker/ for cyclist
# and biker,
# https://www.theguardian.com/lifeandstyle/2010/oct/24/bike-snobs-guide-cycling-tribes
# for mountain biker (I've never heard the term "mountain cyclist", and
# they are the only group on that page that gets "biker" instead of
# "cyclist")
'1f6b4': {'canonical_name': 'cyclist', 'aliases': []},
# see Activity/51
'1f6b5': {'canonical_name': 'mountain_biker', 'aliases': []},
'1f3bd': {'canonical_name': 'running_shirt', 'aliases': []},
# I feel like people call sports medals "medals", and military medals
# "military medals". Also see Activity/56
'1f3c5': {'canonical_name': 'medal', 'aliases': []},
# See Activity/55. military_medal is the gemoji/unicode
'1f396': {'canonical_name': 'military_medal', 'aliases': []},
# gold and number_one seem like good additions
'1f947': {'canonical_name': 'first_place', 'aliases': ['gold', 'number_one']},
# to parallel Activity/57
'1f948': {'canonical_name': 'second_place', 'aliases': ['silver']},
# to parallel Activity/57
'1f949': {'canonical_name': 'third_place', 'aliases': ['bronze']},
# seemed the best emoji for winner
'1f3c6': {'canonical_name': 'trophy', 'aliases': ['winner']},
'1f3f5': {'canonical_name': 'rosette', 'aliases': []},
'1f397': {'canonical_name': 'reminder_ribbon', 'aliases': []},
# don't need ticket and admission_ticket (see Activity/64), so made one of
# them :pass:.
'1f3ab': {'canonical_name': 'pass', 'aliases': []},
# see Activity/63
'1f39f': {'canonical_name': 'ticket', 'aliases': []},
'1f3aa': {'canonical_name': 'circus', 'aliases': []},
'1f939': {'canonical_name': 'juggling', 'aliases': []},
# rest seem like good additions
'1f3ad': {'canonical_name': 'performing_arts', 'aliases': ['drama', 'theater']},
# rest seem like good additions
'1f3a8': {'canonical_name': 'art', 'aliases': ['palette', 'painting']},
# action seems more useful than clapper, and clapper doesn't seem like that
# common of a term
'1f3ac': {'canonical_name': 'action', 'aliases': []},
# seem like good additions
'1f3a4': {'canonical_name': 'microphone', 'aliases': ['mike', 'mic']},
'1f3a7': {'canonical_name': 'headphones', 'aliases': []},
'1f3bc': {'canonical_name': 'musical_score', 'aliases': []},
# piano seems more useful than musical_keyboard
'1f3b9': {'canonical_name': 'piano', 'aliases': ['musical_keyboard']},
'1f941': {'canonical_name': 'drum', 'aliases': []},
'1f3b7': {'canonical_name': 'saxophone', 'aliases': []},
'1f3ba': {'canonical_name': 'trumpet', 'aliases': []},
'1f3b8': {'canonical_name': 'guitar', 'aliases': []},
'1f3bb': {'canonical_name': 'violin', 'aliases': []},
# dice seems more useful
'1f3b2': {'canonical_name': 'dice', 'aliases': ['die']},
# direct_hit from gemoji/unicode, and seems more useful. bulls_eye seemed
# like a reasonable addition
'1f3af': {'canonical_name': 'direct_hit', 'aliases': ['darts', 'bulls_eye']},
# strike seemed more useful than bowling
'1f3b3': {'canonical_name': 'strike', 'aliases': ['bowling']},
'1f3ae': {'canonical_name': 'video_game', 'aliases': []},
# gambling seemed more useful than slot_machine
'1f3b0': {'canonical_name': 'slot_machine', 'aliases': []},
# the google emoji for this is not red
'1f697': {'canonical_name': 'car', 'aliases': []},
# rideshare seems like a reasonable addition
'1f695': {'canonical_name': 'taxi', 'aliases': ['rideshare']},
# the google emoji for this is not blue. recreational_vehicle is from
# gemoji/unicode, jeep seemed like a good addition
'1f699': {'canonical_name': 'recreational_vehicle', 'aliases': ['jeep']},
# school_bus seemed like a reasonable addition, even though the twitter
# glyph for this doesn't really look like a school bus
'1f68c': {'canonical_name': 'bus', 'aliases': ['school_bus']},
'1f68e': {'canonical_name': 'trolley', 'aliases': []},
'1f3ce': {'canonical_name': 'racecar', 'aliases': []},
'1f693': {'canonical_name': 'police_car', 'aliases': []},
'1f691': {'canonical_name': 'ambulance', 'aliases': []},
# https://trends.google.com/trends/explore?q=fire%20truck,fire%20engine
'1f692': {'canonical_name': 'fire_truck', 'aliases': ['fire_engine']},
'1f690': {'canonical_name': 'minibus', 'aliases': []},
# moving_truck and truck for Places/11 and Places/12 seem much better than
# the iamcal names
'1f69a': {'canonical_name': 'moving_truck', 'aliases': []},
# see Places/11 for truck. Rest seem reasonable additions.
'1f69b': {'canonical_name': 'truck', 'aliases': ['tractor-trailer', 'big_rig', 'semi_truck', 'transport_truck']}, # ignorelongline
'1f69c': {'canonical_name': 'tractor', 'aliases': []},
# kick_scooter and scooter seem better for Places/14 and Places /16 than
# scooter and motor_scooter.
'1f6f4': {'canonical_name': 'kick_scooter', 'aliases': []},
'1f6b2': {'canonical_name': 'bike', 'aliases': ['bicycle']},
# see Places/14. Called motor_bike (or bike) in India
'1f6f5': {'canonical_name': 'scooter', 'aliases': ['motor_bike']},
'1f3cd': {'canonical_name': 'motorcycle', 'aliases': []},
# siren seems more useful. alert seems like a reasonable addition
'1f6a8': {'canonical_name': 'siren', 'aliases': ['rotating_light', 'alert']},
'1f694': {'canonical_name': 'oncoming_police_car', 'aliases': []},
'1f68d': {'canonical_name': 'oncoming_bus', 'aliases': []},
# car to parallel e.g. Places/1
'1f698': {'canonical_name': 'oncoming_car', 'aliases': ['oncoming_automobile']},
'1f696': {'canonical_name': 'oncoming_taxi', 'aliases': []},
# ski_lift seems like a good addition
'1f6a1': {'canonical_name': 'aerial_tramway', 'aliases': ['ski_lift']},
# gondola seems more useful
'1f6a0': {'canonical_name': 'gondola', 'aliases': ['mountain_cableway']},
'1f69f': {'canonical_name': 'suspension_railway', 'aliases': []},
# train_car seems like a reasonable addition
'1f683': {'canonical_name': 'railway_car', 'aliases': ['train_car']},
# this does not seem like a good emoji for train, especially compared to
# Places/33. streetcar seems like a good addition.
'1f68b': {'canonical_name': 'tram', 'aliases': ['streetcar']},
'1f69e': {'canonical_name': 'mountain_railway', 'aliases': []},
# elevated_train seems like a reasonable addition
'1f69d': {'canonical_name': 'monorail', 'aliases': ['elevated_train']},
# from gemoji/unicode. Also, don't thin we need two bullettrain's
'1f684': {'canonical_name': 'high_speed_train', 'aliases': []},
# google, wikipedia, etc prefer bullet train to bullettrain
'1f685': {'canonical_name': 'bullet_train', 'aliases': []},
'1f688': {'canonical_name': 'light_rail', 'aliases': []},
'1f682': {'canonical_name': 'train', 'aliases': ['steam_locomotive']},
# oncoming_train seems better than train2
'1f686': {'canonical_name': 'oncoming_train', 'aliases': []},
# saving metro for Symbols/108. The tunnel makes subway more appropriate
# anyway.
'1f687': {'canonical_name': 'subway', 'aliases': []},
# all the glyphs of oncoming vehicles have names like oncoming_*. The
# alternate names are to parallel the alternates to Places/27.
'1f68a': {'canonical_name': 'oncoming_tram', 'aliases': ['oncoming_streetcar', 'oncoming_trolley']},
'1f689': {'canonical_name': 'station', 'aliases': []},
'1f681': {'canonical_name': 'helicopter', 'aliases': []},
'1f6e9': {'canonical_name': 'small_airplane', 'aliases': []},
'2708': {'canonical_name': 'airplane', 'aliases': []},
# take_off seems more useful than airplane_departure. departure also seems
# more useful than airplane_departure. Arguably departure should be the
# primary, since arrival is probably more useful than landing in Places/42,
# but going with this for now.
'1f6eb': {'canonical_name': 'take_off', 'aliases': ['departure', 'airplane_departure']},
# parallel to Places/41
'1f6ec': {'canonical_name': 'landing', 'aliases': ['arrival', 'airplane_arrival']},
'1f680': {'canonical_name': 'rocket', 'aliases': []},
'1f6f0': {'canonical_name': 'satellite', 'aliases': []},
'1f4ba': {'canonical_name': 'seat', 'aliases': []},
'1f6f6': {'canonical_name': 'canoe', 'aliases': []},
'26f5': {'canonical_name': 'boat', 'aliases': ['sailboat']},
'1f6e5': {'canonical_name': 'motor_boat', 'aliases': []},
'1f6a4': {'canonical_name': 'speedboat', 'aliases': []},
# yatch and cruise seem like reasonable additions
'1f6f3': {'canonical_name': 'passenger_ship', 'aliases': ['yacht', 'cruise']},
'26f4': {'canonical_name': 'ferry', 'aliases': []},
'1f6a2': {'canonical_name': 'ship', 'aliases': []},
'2693': {'canonical_name': 'anchor', 'aliases': []},
# there already is a construction in Places/82, and work_in_progress seems
# like a useful thing to have. Construction_zone seems better than the
# unicode construction_sign, and is there partly so this autocompletes for
# construction.
'1f6a7': {'canonical_name': 'work_in_progress', 'aliases': ['construction_zone']},
# alternates from https://emojipedia.org/fuel-pump/. unicode is fuel_pump,
# not fuelpump
'26fd': {'canonical_name': 'fuel_pump', 'aliases': ['gas_pump', 'petrol_pump']},
# not sure why iamcal removed the space
'1f68f': {'canonical_name': 'bus_stop', 'aliases': []},
# https://emojipedia.org/vertical-traffic-light/ thinks this is the more
# common of the two traffic lights, so putting traffic_light on this one
'1f6a6': {'canonical_name': 'traffic_light', 'aliases': ['vertical_traffic_light']},
# see Places/57
'1f6a5': {'canonical_name': 'horizontal_traffic_light', 'aliases': []},
# road_trip from http://mashable.com/2015/10/23/ios-9-1-emoji-guide
'1f5fa': {'canonical_name': 'map', 'aliases': ['world_map', 'road_trip']},
# rock_carving, statue, and tower seem more general and less culturally
# specific, for Places/60, 61, and 63.
'1f5ff': {'canonical_name': 'rock_carving', 'aliases': ['moyai']},
# new_york from https://emojipedia.org/statue-of-liberty/. see Places/60
# for statue
'1f5fd': {'canonical_name': 'statue', 'aliases': ['new_york', 'statue_of_liberty']},
'26f2': {'canonical_name': 'fountain', 'aliases': []},
# see Places/60
'1f5fc': {'canonical_name': 'tower', 'aliases': ['tokyo_tower']},
# choosing this as the castle since castles are a way bigger thing in
# europe than japan, and shiro is a pretty reasonable name for Places/65
'1f3f0': {'canonical_name': 'castle', 'aliases': []},
# see Places/64
'1f3ef': {'canonical_name': 'shiro', 'aliases': []},
'1f3df': {'canonical_name': 'stadium', 'aliases': []},
'1f3a1': {'canonical_name': 'ferris_wheel', 'aliases': []},
'1f3a2': {'canonical_name': 'roller_coaster', 'aliases': []},
# merry_go_round seems like a good addition
'1f3a0': {'canonical_name': 'carousel', 'aliases': ['merry_go_round']},
# beach_umbrella seems more useful
'26f1': {'canonical_name': 'beach_umbrella', 'aliases': []},
'1f3d6': {'canonical_name': 'beach', 'aliases': []},
'1f3dd': {'canonical_name': 'island', 'aliases': []},
'26f0': {'canonical_name': 'mountain', 'aliases': []},
'1f3d4': {'canonical_name': 'snowy_mountain', 'aliases': []},
# already lots of other mountains, otherwise would rename this like
# Places/60
'1f5fb': {'canonical_name': 'mount_fuji', 'aliases': []},
'1f30b': {'canonical_name': 'volcano', 'aliases': []},
'1f3dc': {'canonical_name': 'desert', 'aliases': []},
# campsite from https://emojipedia.org/camping/, I think Places/79 is a
# better camping
'1f3d5': {'canonical_name': 'campsite', 'aliases': []},
'26fa': {'canonical_name': 'tent', 'aliases': ['camping']},
'1f6e4': {'canonical_name': 'railway_track', 'aliases': ['train_tracks']},
# road is used much more frequently at
# https://trends.google.com/trends/explore?q=road,motorway
'1f6e3': {'canonical_name': 'road', 'aliases': ['motorway']},
'1f3d7': {'canonical_name': 'construction', 'aliases': []},
'1f3ed': {'canonical_name': 'factory', 'aliases': []},
'1f3e0': {'canonical_name': 'house', 'aliases': []},
# suburb seems more useful
'1f3e1': {'canonical_name': 'suburb', 'aliases': []},
'1f3d8': {'canonical_name': 'houses', 'aliases': []},
# condemned seemed like a good addition
'1f3da': {'canonical_name': 'derelict_house', 'aliases': ['condemned']},
'1f3e2': {'canonical_name': 'office', 'aliases': []},
'1f3ec': {'canonical_name': 'department_store', 'aliases': []},
'1f3e3': {'canonical_name': 'japan_post', 'aliases': []},
'1f3e4': {'canonical_name': 'post_office', 'aliases': []},
'1f3e5': {'canonical_name': 'hospital', 'aliases': []},
'1f3e6': {'canonical_name': 'bank', 'aliases': []},
'1f3e8': {'canonical_name': 'hotel', 'aliases': []},
'1f3ea': {'canonical_name': 'convenience_store', 'aliases': []},
'1f3eb': {'canonical_name': 'school', 'aliases': []},
'1f3e9': {'canonical_name': 'love_hotel', 'aliases': []},
'1f492': {'canonical_name': 'wedding', 'aliases': []},
'1f3db': {'canonical_name': 'classical_building', 'aliases': []},
'26ea': {'canonical_name': 'church', 'aliases': []},
'1f54c': {'canonical_name': 'mosque', 'aliases': []},
'1f54d': {'canonical_name': 'synagogue', 'aliases': []},
'1f54b': {'canonical_name': 'kaaba', 'aliases': []},
'26e9': {'canonical_name': 'shinto_shrine', 'aliases': []},
'1f5fe': {'canonical_name': 'japan', 'aliases': []},
# rice_scene seems like a strange name to have. gemoji alternate is
# moon_ceremony
'1f391': {'canonical_name': 'moon_ceremony', 'aliases': []},
'1f3de': {'canonical_name': 'national_park', 'aliases': []},
# ocean_sunrise to parallel Places/109
'1f305': {'canonical_name': 'sunrise', 'aliases': ['ocean_sunrise']},
'1f304': {'canonical_name': 'mountain_sunrise', 'aliases': []},
# shooting_star and wish seem like way better descriptions. gemoji/unicode
# is shooting_star
'1f320': {'canonical_name': 'shooting_star', 'aliases': ['wish']},
'1f387': {'canonical_name': 'sparkler', 'aliases': []},
'1f386': {'canonical_name': 'fireworks', 'aliases': []},
'1f307': {'canonical_name': 'city_sunrise', 'aliases': []},
'1f306': {'canonical_name': 'sunset', 'aliases': []},
# city and skyline seem more useful than cityscape
'1f3d9': {'canonical_name': 'city', 'aliases': ['skyline']},
'1f303': {'canonical_name': 'night', 'aliases': []},
# night_sky seems like a good addition
'1f30c': {'canonical_name': 'milky_way', 'aliases': ['night_sky']},
'1f309': {'canonical_name': 'bridge', 'aliases': []},
'1f301': {'canonical_name': 'foggy', 'aliases': []},
'231a': {'canonical_name': 'watch', 'aliases': []},
# unicode/gemoji is mobile_phone. The rest seem like good additions
'1f4f1': {'canonical_name': 'mobile_phone', 'aliases': ['smartphone', 'iphone', 'android']},
'1f4f2': {'canonical_name': 'calling', 'aliases': []},
# gemoji has laptop, even though the google emoji for this does not look
# like a laptop
'1f4bb': {'canonical_name': 'computer', 'aliases': ['laptop']},
'2328': {'canonical_name': 'keyboard', 'aliases': []},
'1f5a5': {'canonical_name': 'desktop_computer', 'aliases': []},
'1f5a8': {'canonical_name': 'printer', 'aliases': []},
# gemoji/unicode is computer_mouse
'1f5b1': {'canonical_name': 'computer_mouse', 'aliases': []},
'1f5b2': {'canonical_name': 'trackball', 'aliases': []},
# arcade seems like a reasonable addition
'1f579': {'canonical_name': 'joystick', 'aliases': ['arcade']},
# vise seems like a reasonable addition
'1f5dc': {'canonical_name': 'compression', 'aliases': ['vise']},
# gold record seems more useful, idea came from
# http://www.11points.com/Web-Tech/11_Emoji_With_Different_Meanings_Than_You_Think
'1f4bd': {'canonical_name': 'gold_record', 'aliases': ['minidisc']},
'1f4be': {'canonical_name': 'floppy_disk', 'aliases': []},
'1f4bf': {'canonical_name': 'cd', 'aliases': []},
'1f4c0': {'canonical_name': 'dvd', 'aliases': []},
# videocassette from gemoji/unicode
'1f4fc': {'canonical_name': 'vhs', 'aliases': ['videocassette']},
'1f4f7': {'canonical_name': 'camera', 'aliases': []},
# both of these seem more useful than camera_with_flash
'1f4f8': {'canonical_name': 'taking_a_picture', 'aliases': ['say_cheese']},
# video_recorder seems like a reasonable addition
'1f4f9': {'canonical_name': 'video_camera', 'aliases': ['video_recorder']},
'1f3a5': {'canonical_name': 'movie_camera', 'aliases': []},
# seems like the best emoji for movie
'1f4fd': {'canonical_name': 'projector', 'aliases': ['movie']},
'1f39e': {'canonical_name': 'film', 'aliases': []},
# both of these seem more useful than telephone_receiver
'1f4de': {'canonical_name': 'landline', 'aliases': ['home_phone']},
'260e': {'canonical_name': 'phone', 'aliases': ['telephone']},
'1f4df': {'canonical_name': 'pager', 'aliases': []},
'1f4e0': {'canonical_name': 'fax', 'aliases': []},
'1f4fa': {'canonical_name': 'tv', 'aliases': ['television']},
'1f4fb': {'canonical_name': 'radio', 'aliases': []},
'1f399': {'canonical_name': 'studio_microphone', 'aliases': []},
# volume seems more useful
'1f39a': {'canonical_name': 'volume', 'aliases': ['level_slider']},
'1f39b': {'canonical_name': 'control_knobs', 'aliases': []},
'23f1': {'canonical_name': 'stopwatch', 'aliases': []},
'23f2': {'canonical_name': 'timer', 'aliases': []},
'23f0': {'canonical_name': 'alarm_clock', 'aliases': []},
'1f570': {'canonical_name': 'mantelpiece_clock', 'aliases': []},
# times_up and time_ticking seem more useful than the hourglass names
'231b': {'canonical_name': 'times_up', 'aliases': ['hourglass_done']},
# seems like the better hourglass. Also see Objects/36
'23f3': {'canonical_name': 'time_ticking', 'aliases': ['hourglass']},
'1f4e1': {'canonical_name': 'satellite_antenna', 'aliases': []},
# seems like a reasonable addition
'1f50b': {'canonical_name': 'battery', 'aliases': ['full_battery']},
'1f50c': {'canonical_name': 'electric_plug', 'aliases': []},
# light_bulb seems better and from unicode/gemoji. idea seems like a good
# addition
'1f4a1': {'canonical_name': 'light_bulb', 'aliases': ['bulb', 'idea']},
'1f526': {'canonical_name': 'flashlight', 'aliases': []},
'1f56f': {'canonical_name': 'candle', 'aliases': []},
# seems like a reasonable addition
'1f5d1': {'canonical_name': 'wastebasket', 'aliases': ['trash_can']},
# http://www.iemoji.com/view/emoji/1173/objects/oil-drum
'1f6e2': {'canonical_name': 'oil_drum', 'aliases': ['commodities']},
# losing money from https://emojipedia.org/money-with-wings/,
# easy_come_easy_go seems like a reasonable addition
'1f4b8': {'canonical_name': 'losing_money', 'aliases': ['easy_come_easy_go', 'money_with_wings']},
# I think the _bills, _banknotes etc versions of these are arguably more
# fun to use in chat, and certainly match the glyphs better
'1f4b5': {'canonical_name': 'dollar_bills', 'aliases': []},
'1f4b4': {'canonical_name': 'yen_banknotes', 'aliases': []},
'1f4b6': {'canonical_name': 'euro_banknotes', 'aliases': []},
'1f4b7': {'canonical_name': 'pound_notes', 'aliases': []},
'1f4b0': {'canonical_name': 'money', 'aliases': []},
'1f4b3': {'canonical_name': 'credit_card', 'aliases': ['debit_card']},
'1f48e': {'canonical_name': 'gem', 'aliases': ['crystal']},
# justice seems more useful
'2696': {'canonical_name': 'justice', 'aliases': ['scales', 'balance']},
# fixing, at_work, and working_on_it seem like useful concepts for
# workplace chat
'1f527': {'canonical_name': 'fixing', 'aliases': ['wrench']},
'1f528': {'canonical_name': 'hammer', 'aliases': ['maintenance', 'handyman', 'handywoman']},
'2692': {'canonical_name': 'at_work', 'aliases': ['hammer_and_pick']},
# something that might be useful for chat.zulip.org, even
'1f6e0': {'canonical_name': 'working_on_it', 'aliases': ['hammer_and_wrench', 'tools']},
'26cf': {'canonical_name': 'mine', 'aliases': ['pick']},
# screw is somewhat inappropriate, but not openly so, so leaving it in
'1f529': {'canonical_name': 'nut_and_bolt', 'aliases': ['screw']},
'2699': {'canonical_name': 'gear', 'aliases': ['settings', 'mechanical', 'engineer']},
'26d3': {'canonical_name': 'chains', 'aliases': []},
'1f52b': {'canonical_name': 'gun', 'aliases': []},
'1f4a3': {'canonical_name': 'bomb', 'aliases': []},
# betrayed from http://www.iemoji.com/view/emoji/786/objects/kitchen-knife
'1f52a': {'canonical_name': 'knife', 'aliases': ['hocho', 'betrayed']},
# rated_for_violence from
# http://www.iemoji.com/view/emoji/1085/objects/dagger. hate (also
# suggested there) seems too strong, as does just "violence".
'1f5e1': {'canonical_name': 'dagger', 'aliases': ['rated_for_violence']},
'2694': {'canonical_name': 'duel', 'aliases': ['swords']},
'1f6e1': {'canonical_name': 'shield', 'aliases': []},
'1f6ac': {'canonical_name': 'smoking', 'aliases': []},
'26b0': {'canonical_name': 'coffin', 'aliases': ['burial', 'grave']},
'26b1': {'canonical_name': 'funeral_urn', 'aliases': ['cremation']},
# amphora is too obscure, I think
'1f3fa': {'canonical_name': 'vase', 'aliases': ['amphora']},
'1f52e': {'canonical_name': 'crystal_ball', 'aliases': ['oracle', 'future', 'fortune_telling']},
'1f4ff': {'canonical_name': 'prayer_beads', 'aliases': []},
'1f488': {'canonical_name': 'barber', 'aliases': ['striped_pole']},
# alchemy seems more useful and less obscure
'2697': {'canonical_name': 'alchemy', 'aliases': ['alembic']},
'1f52d': {'canonical_name': 'telescope', 'aliases': []},
# science seems useful to have. scientist inspired by
# http://www.iemoji.com/view/emoji/787/objects/microscope
'1f52c': {'canonical_name': 'science', 'aliases': ['microscope', 'scientist']},
'1f573': {'canonical_name': 'hole', 'aliases': []},
'1f48a': {'canonical_name': 'medicine', 'aliases': ['pill']},
'1f489': {'canonical_name': 'injection', 'aliases': ['syringe']},
'1f321': {'canonical_name': 'temperature', 'aliases': ['thermometer', 'warm']},
'1f6bd': {'canonical_name': 'toilet', 'aliases': []},
'1f6b0': {'canonical_name': 'potable_water', 'aliases': ['tap_water', 'drinking_water']},
'1f6bf': {'canonical_name': 'shower', 'aliases': []},
'1f6c1': {'canonical_name': 'bathtub', 'aliases': []},
'1f6c0': {'canonical_name': 'bath', 'aliases': []},
# reception and services from
# http://www.iemoji.com/view/emoji/1169/objects/bellhop-bell
'1f6ce': {'canonical_name': 'bellhop_bell', 'aliases': ['reception', 'services', 'ding']},
'1f511': {'canonical_name': 'key', 'aliases': []},
# encrypted from http://www.iemoji.com/view/emoji/1081/objects/old-key,
# secret from http://mashable.com/2015/10/23/ios-9-1-emoji-guide
'1f5dd': {'canonical_name': 'secret', 'aliases': ['dungeon', 'old_key', 'encrypted', 'clue', 'hint']},
'1f6aa': {'canonical_name': 'door', 'aliases': []},
'1f6cb': {'canonical_name': 'living_room', 'aliases': ['furniture', 'couch_and_lamp', 'lifestyles']},
'1f6cf': {'canonical_name': 'bed', 'aliases': ['bedroom']},
# guestrooms from iemoji, would add hotel but taken by Places/94
'1f6cc': {'canonical_name': 'in_bed', 'aliases': ['accommodations', 'guestrooms']},
'1f5bc': {'canonical_name': 'picture', 'aliases': ['framed_picture']},
'1f6cd': {'canonical_name': 'shopping_bags', 'aliases': []},
# https://trends.google.com/trends/explore?q=shopping%20cart,shopping%20trolley
'1f6d2': {'canonical_name': 'shopping_cart', 'aliases': ['shopping_trolley']},
'1f381': {'canonical_name': 'gift', 'aliases': ['present']},
# seemed like the best celebration
'1f388': {'canonical_name': 'balloon', 'aliases': ['celebration']},
# from gemoji/unicode
'1f38f': {'canonical_name': 'carp_streamer', 'aliases': ['flags']},
'1f380': {'canonical_name': 'ribbon', 'aliases': ['decoration']},
'1f38a': {'canonical_name': 'confetti', 'aliases': ['party_ball']},
# seemed like the best congratulations
'1f389': {'canonical_name': 'tada', 'aliases': ['congratulations']},
'1f38e': {'canonical_name': 'dolls', 'aliases': []},
'1f3ee': {'canonical_name': 'lantern', 'aliases': ['izakaya_lantern']},
'1f390': {'canonical_name': 'wind_chime', 'aliases': []},
'2709': {'canonical_name': 'email', 'aliases': ['envelope', 'mail']},
# seems useful for chat?
'1f4e9': {'canonical_name': 'mail_sent', 'aliases': ['sealed']},
'1f4e8': {'canonical_name': 'mail_received', 'aliases': []},
'1f4e7': {'canonical_name': 'e-mail', 'aliases': []},
'1f48c': {'canonical_name': 'love_letter', 'aliases': []},
'1f4e5': {'canonical_name': 'inbox', 'aliases': []},
'1f4e4': {'canonical_name': 'outbox', 'aliases': []},
'1f4e6': {'canonical_name': 'package', 'aliases': []},
# price_tag from iemoji
'1f3f7': {'canonical_name': 'label', 'aliases': ['tag', 'price_tag']},
'1f4ea': {'canonical_name': 'closed_mailbox', 'aliases': []},
'1f4eb': {'canonical_name': 'mailbox', 'aliases': []},
'1f4ec': {'canonical_name': 'unread_mail', 'aliases': []},
'1f4ed': {'canonical_name': 'inbox_zero', 'aliases': ['empty_mailbox', 'no_mail']},
'1f4ee': {'canonical_name': 'mail_dropoff', 'aliases': []},
'1f4ef': {'canonical_name': 'horn', 'aliases': []},
'1f4dc': {'canonical_name': 'scroll', 'aliases': []},
# receipt seems more useful?
'1f4c3': {'canonical_name': 'receipt', 'aliases': []},
'1f4c4': {'canonical_name': 'document', 'aliases': ['paper', 'file', 'page']},
'1f4d1': {'canonical_name': 'place_holder', 'aliases': []},
'1f4ca': {'canonical_name': 'bar_chart', 'aliases': []},
# seems like the best chart
'1f4c8': {'canonical_name': 'chart', 'aliases': ['upwards_trend', 'growing', 'increasing']},
'1f4c9': {'canonical_name': 'downwards_trend', 'aliases': ['shrinking', 'decreasing']},
'1f5d2': {'canonical_name': 'spiral_notepad', 'aliases': []},
# '1f5d3': {'canonical_name': 'X', 'aliases': ['spiral_calendar_pad']},
# swapped the following two largely due to the emojione glyphs
'1f4c6': {'canonical_name': 'date', 'aliases': []},
'1f4c5': {'canonical_name': 'calendar', 'aliases': []},
'1f4c7': {'canonical_name': 'rolodex', 'aliases': ['card_index']},
'1f5c3': {'canonical_name': 'archive', 'aliases': []},
'1f5f3': {'canonical_name': 'ballot_box', 'aliases': []},
'1f5c4': {'canonical_name': 'file_cabinet', 'aliases': []},
'1f4cb': {'canonical_name': 'clipboard', 'aliases': []},
# don't need two file_folders, so made this organize
'1f4c1': {'canonical_name': 'organize', 'aliases': ['file_folder']},
'1f4c2': {'canonical_name': 'folder', 'aliases': []},
'1f5c2': {'canonical_name': 'sort', 'aliases': []},
'1f5de': {'canonical_name': 'newspaper', 'aliases': ['swat']},
'1f4f0': {'canonical_name': 'headlines', 'aliases': []},
'1f4d3': {'canonical_name': 'notebook', 'aliases': ['composition_book']},
'1f4d4': {'canonical_name': 'decorative_notebook', 'aliases': []},
'1f4d2': {'canonical_name': 'ledger', 'aliases': ['spiral_notebook']},
# the glyphs here are the same as Objects/147-149 (with a different color),
# for all but google
'1f4d5': {'canonical_name': 'red_book', 'aliases': ['closed_book']},
'1f4d7': {'canonical_name': 'green_book', 'aliases': []},
'1f4d8': {'canonical_name': 'blue_book', 'aliases': []},
'1f4d9': {'canonical_name': 'orange_book', 'aliases': []},
'1f4da': {'canonical_name': 'books', 'aliases': []},
'1f4d6': {'canonical_name': 'book', 'aliases': ['open_book']},
'1f516': {'canonical_name': 'bookmark', 'aliases': []},
'1f517': {'canonical_name': 'link', 'aliases': []},
'1f4ce': {'canonical_name': 'paperclip', 'aliases': ['attachment']},
# office_supplies from http://mashable.com/2015/10/23/ios-9-1-emoji-guide
'1f587': {'canonical_name': 'office_supplies', 'aliases': ['paperclip_chain', 'linked']},
'1f4d0': {'canonical_name': 'carpenter_square', 'aliases': ['triangular_ruler']},
'1f4cf': {'canonical_name': 'ruler', 'aliases': ['straightedge']},
'1f4cc': {'canonical_name': 'push_pin', 'aliases': ['thumb_tack']},
'1f4cd': {'canonical_name': 'pin', 'aliases': ['sewing_pin']},
'2702': {'canonical_name': 'scissors', 'aliases': []},
'1f58a': {'canonical_name': 'pen', 'aliases': ['ballpoint_pen']},
'1f58b': {'canonical_name': 'fountain_pen', 'aliases': []},
# three of the four emoji sets just have a rightwards-facing objects/162
# '2712': {'canonical_name': 'X', 'aliases': ['black_nib']},
'1f58c': {'canonical_name': 'paintbrush', 'aliases': []},
'1f58d': {'canonical_name': 'crayon', 'aliases': []},
'1f4dd': {'canonical_name': 'memo', 'aliases': ['note']},
'270f': {'canonical_name': 'pencil', 'aliases': []},
'1f50d': {'canonical_name': 'search', 'aliases': ['find', 'magnifying_glass']},
# '1f50e': {'canonical_name': 'X', 'aliases': ['mag_right']},
# https://emojipedia.org/lock-with-ink-pen/
'1f50f': {'canonical_name': 'privacy', 'aliases': ['key_signing', 'digital_security', 'protected']},
'1f510': {'canonical_name': 'secure', 'aliases': ['lock_with_key', 'safe', 'commitment', 'loyalty']},
'1f512': {'canonical_name': 'locked', 'aliases': []},
'1f513': {'canonical_name': 'unlocked', 'aliases': []},
# seems the best glyph for love and love_you
'2764': {'canonical_name': 'heart', 'aliases': ['love', 'love_you']},
'1f49b': {'canonical_name': 'yellow_heart', 'aliases': ['heart_of_gold']},
'1f49a': {'canonical_name': 'green_heart', 'aliases': ['envy']},
'1f499': {'canonical_name': 'blue_heart', 'aliases': []},
'1f49c': {'canonical_name': 'purple_heart', 'aliases': ['bravery']},
'1f5a4': {'canonical_name': 'black_heart', 'aliases': []},
'1f494': {'canonical_name': 'broken_heart', 'aliases': ['heartache']},
'2763': {'canonical_name': 'heart_exclamation', 'aliases': []},
'1f495': {'canonical_name': 'two_hearts', 'aliases': []},
'1f49e': {'canonical_name': 'revolving_hearts', 'aliases': []},
'1f493': {'canonical_name': 'heartbeat', 'aliases': []},
'1f497': {'canonical_name': 'heart_pulse', 'aliases': ['growing_heart']},
'1f496': {'canonical_name': 'sparkling_heart', 'aliases': []},
'1f498': {'canonical_name': 'cupid', 'aliases': ['smitten', 'heart_arrow']},
'1f49d': {'canonical_name': 'gift_heart', 'aliases': []},
'1f49f': {'canonical_name': 'heart_box', 'aliases': []},
'262e': {'canonical_name': 'peace', 'aliases': []},
'271d': {'canonical_name': 'cross', 'aliases': ['christianity']},
'262a': {'canonical_name': 'star_and_crescent', 'aliases': ['islam']},
'1f549': {'canonical_name': 'om', 'aliases': ['hinduism']},
'2638': {'canonical_name': 'wheel_of_dharma', 'aliases': ['buddhism']},
'2721': {'canonical_name': 'star_of_david', 'aliases': ['judiasm']},
# can't find any explanation of this at all. Is an alternate star of david?
# '1f52f': {'canonical_name': 'X', 'aliases': ['six_pointed_star']},
'1f54e': {'canonical_name': 'menorah', 'aliases': []},
'262f': {'canonical_name': 'yin_yang', 'aliases': []},
'2626': {'canonical_name': 'orthodox_cross', 'aliases': []},
'1f6d0': {'canonical_name': 'place_of_worship', 'aliases': []},
'26ce': {'canonical_name': 'ophiuchus', 'aliases': []},
'2648': {'canonical_name': 'aries', 'aliases': []},
'2649': {'canonical_name': 'taurus', 'aliases': []},
'264a': {'canonical_name': 'gemini', 'aliases': []},
'264b': {'canonical_name': 'cancer', 'aliases': []},
'264c': {'canonical_name': 'leo', 'aliases': []},
'264d': {'canonical_name': 'virgo', 'aliases': []},
'264e': {'canonical_name': 'libra', 'aliases': []},
'264f': {'canonical_name': 'scorpius', 'aliases': []},
'2650': {'canonical_name': 'sagittarius', 'aliases': []},
'2651': {'canonical_name': 'capricorn', 'aliases': []},
'2652': {'canonical_name': 'aquarius', 'aliases': []},
'2653': {'canonical_name': 'pisces', 'aliases': []},
'1f194': {'canonical_name': 'id', 'aliases': []},
'269b': {'canonical_name': 'atom', 'aliases': ['physics']},
# japanese symbol
# '1f251': {'canonical_name': 'X', 'aliases': ['accept']},
'2622': {'canonical_name': 'radioactive', 'aliases': ['nuclear']},
'2623': {'canonical_name': 'biohazard', 'aliases': []},
'1f4f4': {'canonical_name': 'phone_off', 'aliases': []},
'1f4f3': {'canonical_name': 'vibration_mode', 'aliases': []},
# '1f236': {'canonical_name': 'X', 'aliases': ['u6709']},
# '1f21a': {'canonical_name': 'X', 'aliases': ['u7121']},
# '1f238': {'canonical_name': 'X', 'aliases': ['u7533']},
# '1f23a': {'canonical_name': 'X', 'aliases': ['u55b6']},
# '1f237': {'canonical_name': 'X', 'aliases': ['u6708']},
'2734': {'canonical_name': 'eight_pointed_star', 'aliases': []},
'1f19a': {'canonical_name': 'vs', 'aliases': []},
'1f4ae': {'canonical_name': 'white_flower', 'aliases': []},
# '1f250': {'canonical_name': 'X', 'aliases': ['ideograph_advantage']},
# japanese character
# '3299': {'canonical_name': 'X', 'aliases': ['secret']},
# '3297': {'canonical_name': 'X', 'aliases': ['congratulations']},
# '1f234': {'canonical_name': 'X', 'aliases': ['u5408']},
# '1f235': {'canonical_name': 'X', 'aliases': ['u6e80']},
# '1f239': {'canonical_name': 'X', 'aliases': ['u5272']},
# '1f232': {'canonical_name': 'X', 'aliases': ['u7981']},
'1f170': {'canonical_name': 'a', 'aliases': []},
'1f171': {'canonical_name': 'b', 'aliases': []},
'1f18e': {'canonical_name': 'ab', 'aliases': []},
'1f191': {'canonical_name': 'cl', 'aliases': []},
'1f17e': {'canonical_name': 'o', 'aliases': []},
'1f198': {'canonical_name': 'sos', 'aliases': []},
# Symbols/105 seems like a better x, and looks more like the other letters
'274c': {'canonical_name': 'cross_mark', 'aliases': ['incorrect', 'wrong']},
'2b55': {'canonical_name': 'circle', 'aliases': []},
'1f6d1': {'canonical_name': 'stop_sign', 'aliases': ['octagonal_sign']},
'26d4': {'canonical_name': 'no_entry', 'aliases': ['wrong_way']},
'1f4db': {'canonical_name': 'name_badge', 'aliases': []},
'1f6ab': {'canonical_name': 'prohibited', 'aliases': ['not_allowed']},
'1f4af': {'canonical_name': '100', 'aliases': ['hundred']},
'1f4a2': {'canonical_name': 'anger', 'aliases': ['bam', 'pow']},
'2668': {'canonical_name': 'hot_springs', 'aliases': []},
'1f6b7': {'canonical_name': 'no_pedestrians', 'aliases': []},
'1f6af': {'canonical_name': 'do_not_litter', 'aliases': []},
'1f6b3': {'canonical_name': 'no_bicycles', 'aliases': []},
'1f6b1': {'canonical_name': 'non-potable_water', 'aliases': []},
'1f51e': {'canonical_name': 'underage', 'aliases': ['nc17']},
'1f4f5': {'canonical_name': 'no_phones', 'aliases': []},
'1f6ad': {'canonical_name': 'no_smoking', 'aliases': []},
'2757': {'canonical_name': 'exclamation', 'aliases': []},
'2755': {'canonical_name': 'grey_exclamation', 'aliases': []},
'2753': {'canonical_name': 'question', 'aliases': []},
'2754': {'canonical_name': 'grey_question', 'aliases': []},
'203c': {'canonical_name': 'bangbang', 'aliases': ['double_exclamation']},
'2049': {'canonical_name': 'interrobang', 'aliases': []},
'1f505': {'canonical_name': 'low_brightness', 'aliases': ['dim']},
'1f506': {'canonical_name': 'brightness', 'aliases': ['high_brightness']},
'303d': {'canonical_name': 'part_alternation', 'aliases': []},
'26a0': {'canonical_name': 'warning', 'aliases': ['caution', 'danger']},
'1f6b8': {'canonical_name': 'children_crossing', 'aliases': ['school_crossing', 'drive_with_care']},
'1f531': {'canonical_name': 'trident', 'aliases': []},
'269c': {'canonical_name': 'fleur_de_lis', 'aliases': []},
'1f530': {'canonical_name': 'beginner', 'aliases': []},
'267b': {'canonical_name': 'recycle', 'aliases': []},
# seems like the best check
'2705': {'canonical_name': 'check', 'aliases': ['all_good', 'approved']},
# '1f22f': {'canonical_name': 'X', 'aliases': ['u6307']},
# stock_market seemed more useful
'1f4b9': {'canonical_name': 'stock_market', 'aliases': []},
'2747': {'canonical_name': 'sparkle', 'aliases': []},
'2733': {'canonical_name': 'eight_spoked_asterisk', 'aliases': []},
'274e': {'canonical_name': 'x', 'aliases': []},
'1f310': {'canonical_name': 'www', 'aliases': ['globe']},
'1f4a0': {'canonical_name': 'cute', 'aliases': ['kawaii', 'diamond_with_a_dot']},
'24c2': {'canonical_name': 'metro', 'aliases': ['m']},
'1f300': {'canonical_name': 'cyclone', 'aliases': ['hurricane', 'typhoon']},
'1f4a4': {'canonical_name': 'zzz', 'aliases': []},
'1f3e7': {'canonical_name': 'atm', 'aliases': []},
'1f6be': {'canonical_name': 'wc', 'aliases': ['water_closet']},
'267f': {'canonical_name': 'accessible', 'aliases': ['wheelchair', 'disabled']},
'1f17f': {'canonical_name': 'parking', 'aliases': ['p']},
# '1f233': {'canonical_name': 'X', 'aliases': ['u7a7a']},
# '1f202': {'canonical_name': 'X', 'aliases': ['sa']},
'1f6c2': {'canonical_name': 'passport_control', 'aliases': ['immigration']},
'1f6c3': {'canonical_name': 'customs', 'aliases': []},
'1f6c4': {'canonical_name': 'baggage_claim', 'aliases': []},
'1f6c5': {'canonical_name': 'locker', 'aliases': ['locked_bag']},
'1f6b9': {'canonical_name': 'mens', 'aliases': []},
'1f6ba': {'canonical_name': 'womens', 'aliases': []},
# seems more in line with the surrounding bathroom symbols
'1f6bc': {'canonical_name': 'baby_change_station', 'aliases': ['nursery']},
'1f6bb': {'canonical_name': 'restroom', 'aliases': []},
'1f6ae': {'canonical_name': 'put_litter_in_its_place', 'aliases': []},
'1f3a6': {'canonical_name': 'cinema', 'aliases': ['movie_theater']},
'1f4f6': {'canonical_name': 'cell_reception', 'aliases': ['signal_strength', 'signal_bars']},
# '1f201': {'canonical_name': 'X', 'aliases': ['koko']},
'1f523': {'canonical_name': 'symbols', 'aliases': []},
'2139': {'canonical_name': 'info', 'aliases': []},
'1f524': {'canonical_name': 'abc', 'aliases': []},
'1f521': {'canonical_name': 'abcd', 'aliases': ['alphabet']},
'1f520': {'canonical_name': 'capital_abcd', 'aliases': ['capital_letters']},
'1f196': {'canonical_name': 'ng', 'aliases': []},
# from unicode/gemoji. Saving ok for People/111
'1f197': {'canonical_name': 'squared_ok', 'aliases': []},
# from unicode, and to parallel Symbols/135. Saving up for Symbols/171
'1f199': {'canonical_name': 'squared_up', 'aliases': []},
'1f192': {'canonical_name': 'cool', 'aliases': []},
'1f195': {'canonical_name': 'new', 'aliases': []},
'1f193': {'canonical_name': 'free', 'aliases': []},
'0030-20e3': {'canonical_name': 'zero', 'aliases': ['0']},
'0031-20e3': {'canonical_name': 'one', 'aliases': ['1']},
'0032-20e3': {'canonical_name': 'two', 'aliases': ['2']},
'0033-20e3': {'canonical_name': 'three', 'aliases': ['3']},
'0034-20e3': {'canonical_name': 'four', 'aliases': ['4']},
'0035-20e3': {'canonical_name': 'five', 'aliases': ['5']},
'0036-20e3': {'canonical_name': 'six', 'aliases': ['6']},
'0037-20e3': {'canonical_name': 'seven', 'aliases': ['7']},
'0038-20e3': {'canonical_name': 'eight', 'aliases': ['8']},
'0039-20e3': {'canonical_name': 'nine', 'aliases': ['9']},
'1f51f': {'canonical_name': 'ten', 'aliases': ['10']},
'1f522': {'canonical_name': '1234', 'aliases': ['numbers']},
'0023-20e3': {'canonical_name': 'hash', 'aliases': []},
'002a-20e3': {'canonical_name': 'asterisk', 'aliases': []},
'25b6': {'canonical_name': 'play', 'aliases': []},
'23f8': {'canonical_name': 'pause', 'aliases': []},
'23ef': {'canonical_name': 'play_pause', 'aliases': []},
# stop taken by People/118
'23f9': {'canonical_name': 'stop_button', 'aliases': []},
'23fa': {'canonical_name': 'record', 'aliases': []},
'23ed': {'canonical_name': 'next_track', 'aliases': ['skip_forward']},
'23ee': {'canonical_name': 'previous_track', 'aliases': ['skip_back']},
'23e9': {'canonical_name': 'fast_forward', 'aliases': []},
'23ea': {'canonical_name': 'rewind', 'aliases': ['fast_reverse']},
'23eb': {'canonical_name': 'double_up', 'aliases': ['fast_up']},
'23ec': {'canonical_name': 'double_down', 'aliases': ['fast_down']},
'25c0': {'canonical_name': 'play_reverse', 'aliases': []},
'1f53c': {'canonical_name': 'upvote', 'aliases': ['up_button', 'increase']},
'1f53d': {'canonical_name': 'downvote', 'aliases': ['down_button', 'decrease']},
'27a1': {'canonical_name': 'right', 'aliases': ['east']},
'2b05': {'canonical_name': 'left', 'aliases': ['west']},
'2b06': {'canonical_name': 'up', 'aliases': ['north']},
'2b07': {'canonical_name': 'down', 'aliases': ['south']},
'2197': {'canonical_name': 'upper_right', 'aliases': ['north_east']},
'2198': {'canonical_name': 'lower_right', 'aliases': ['south_east']},
'2199': {'canonical_name': 'lower_left', 'aliases': ['south_west']},
'2196': {'canonical_name': 'upper_left', 'aliases': ['north_west']},
'2195': {'canonical_name': 'up_down', 'aliases': []},
'2194': {'canonical_name': 'left_right', 'aliases': ['swap']},
'21aa': {'canonical_name': 'forward', 'aliases': ['right_hook']},
'21a9': {'canonical_name': 'reply', 'aliases': ['left_hook']},
'2934': {'canonical_name': 'heading_up', 'aliases': []},
'2935': {'canonical_name': 'heading_down', 'aliases': []},
'1f500': {'canonical_name': 'shuffle', 'aliases': []},
'1f501': {'canonical_name': 'repeat', 'aliases': []},
'1f502': {'canonical_name': 'repeat_one', 'aliases': []},
'1f504': {'canonical_name': 'counterclockwise', 'aliases': ['return']},
'1f503': {'canonical_name': 'clockwise', 'aliases': []},
'1f3b5': {'canonical_name': 'music', 'aliases': []},
'1f3b6': {'canonical_name': 'musical_notes', 'aliases': []},
'2795': {'canonical_name': 'plus', 'aliases': ['add']},
'2796': {'canonical_name': 'minus', 'aliases': ['subtract']},
'2797': {'canonical_name': 'division', 'aliases': ['divide']},
'2716': {'canonical_name': 'multiplication', 'aliases': ['multiply']},
'1f4b2': {'canonical_name': 'dollars', 'aliases': []},
# There is no other exchange, so might as well generalize this
'1f4b1': {'canonical_name': 'exchange', 'aliases': []},
'2122': {'canonical_name': 'tm', 'aliases': ['trademark']},
'3030': {'canonical_name': 'wavy_dash', 'aliases': []},
'27b0': {'canonical_name': 'loop', 'aliases': []},
# https://emojipedia.org/double-curly-loop/
'27bf': {'canonical_name': 'double_loop', 'aliases': ['voicemail']},
'1f51a': {'canonical_name': 'end', 'aliases': []},
'1f519': {'canonical_name': 'back', 'aliases': []},
'1f51b': {'canonical_name': 'on', 'aliases': []},
'1f51d': {'canonical_name': 'top', 'aliases': []},
'1f51c': {'canonical_name': 'soon', 'aliases': []},
'2714': {'canonical_name': 'check_mark', 'aliases': []},
'2611': {'canonical_name': 'checkbox', 'aliases': []},
'1f518': {'canonical_name': 'radio_button', 'aliases': []},
'26aa': {'canonical_name': 'white_circle', 'aliases': []},
'26ab': {'canonical_name': 'black_circle', 'aliases': []},
'1f534': {'canonical_name': 'red_circle', 'aliases': []},
'1f535': {'canonical_name': 'blue_circle', 'aliases': []},
'1f53a': {'canonical_name': 'red_triangle_up', 'aliases': []},
'1f53b': {'canonical_name': 'red_triangle_down', 'aliases': []},
'1f538': {'canonical_name': 'small_orange_diamond', 'aliases': []},
'1f539': {'canonical_name': 'small_blue_diamond', 'aliases': []},
'1f536': {'canonical_name': 'large_orange_diamond', 'aliases': []},
'1f537': {'canonical_name': 'large_blue_diamond', 'aliases': []},
'1f533': {'canonical_name': 'black_and_white_square', 'aliases': []},
'1f532': {'canonical_name': 'white_and_black_square', 'aliases': []},
'25aa': {'canonical_name': 'black_small_square', 'aliases': []},
'25ab': {'canonical_name': 'white_small_square', 'aliases': []},
'25fe': {'canonical_name': 'black_medium_small_square', 'aliases': []},
'25fd': {'canonical_name': 'white_medium_small_square', 'aliases': []},
'25fc': {'canonical_name': 'black_medium_square', 'aliases': []},
'25fb': {'canonical_name': 'white_medium_square', 'aliases': []},
'2b1b': {'canonical_name': 'black_large_square', 'aliases': []},
'2b1c': {'canonical_name': 'white_large_square', 'aliases': []},
'1f508': {'canonical_name': 'speaker', 'aliases': []},
'1f507': {'canonical_name': 'mute', 'aliases': ['no_sound']},
'1f509': {'canonical_name': 'softer', 'aliases': []},
'1f50a': {'canonical_name': 'louder', 'aliases': ['sound']},
'1f514': {'canonical_name': 'notifications', 'aliases': ['bell']},
'1f515': {'canonical_name': 'mute_notifications', 'aliases': []},
'1f4e3': {'canonical_name': 'megaphone', 'aliases': ['shout']},
'1f4e2': {'canonical_name': 'loudspeaker', 'aliases': ['bullhorn']},
'1f4ac': {'canonical_name': 'umm', 'aliases': ['speech_balloon']},
'1f5e8': {'canonical_name': 'speech_bubble', 'aliases': []},
'1f4ad': {'canonical_name': 'thought', 'aliases': ['dream']},
'1f5ef': {'canonical_name': 'anger_bubble', 'aliases': []},
'2660': {'canonical_name': 'spades', 'aliases': []},
'2663': {'canonical_name': 'clubs', 'aliases': []},
'2665': {'canonical_name': 'hearts', 'aliases': []},
'2666': {'canonical_name': 'diamonds', 'aliases': []},
'1f0cf': {'canonical_name': 'joker', 'aliases': []},
'1f3b4': {'canonical_name': 'playing_cards', 'aliases': []},
'1f004': {'canonical_name': 'mahjong', 'aliases': []},
# The only use I can think of for so many clocks is to be able to use them
# to vote on times and such in emoji reactions. But a) the experience is
# not that great (the images are too small), b) there are issues with
# 24-hour time (used in many countries), like what is 00:30 or 01:00
# called, c) it's hard to make the compose typeahead experience great, and
# d) we should have a dedicated time voting widget that takes care of
# timezone and locale issues, and uses a digital representation.
# '1f550': {'canonical_name': 'X', 'aliases': ['clock1']},
# '1f551': {'canonical_name': 'X', 'aliases': ['clock2']},
# '1f552': {'canonical_name': 'X', 'aliases': ['clock3']},
# '1f553': {'canonical_name': 'X', 'aliases': ['clock4']},
# '1f554': {'canonical_name': 'X', 'aliases': ['clock5']},
# '1f555': {'canonical_name': 'X', 'aliases': ['clock6']},
# '1f556': {'canonical_name': 'X', 'aliases': ['clock7']},
# seems like the best choice for time
'1f557': {'canonical_name': 'time', 'aliases': ['clock']},
# '1f558': {'canonical_name': 'X', 'aliases': ['clock9']},
# '1f559': {'canonical_name': 'X', 'aliases': ['clock10']},
# '1f55a': {'canonical_name': 'X', 'aliases': ['clock11']},
# '1f55b': {'canonical_name': 'X', 'aliases': ['clock12']},
# '1f55c': {'canonical_name': 'X', 'aliases': ['clock130']},
# '1f55d': {'canonical_name': 'X', 'aliases': ['clock230']},
# '1f55e': {'canonical_name': 'X', 'aliases': ['clock330']},
# '1f55f': {'canonical_name': 'X', 'aliases': ['clock430']},
# '1f560': {'canonical_name': 'X', 'aliases': ['clock530']},
# '1f561': {'canonical_name': 'X', 'aliases': ['clock630']},
# '1f562': {'canonical_name': 'X', 'aliases': ['clock730']},
# '1f563': {'canonical_name': 'X', 'aliases': ['clock830']},
# '1f564': {'canonical_name': 'X', 'aliases': ['clock930']},
# '1f565': {'canonical_name': 'X', 'aliases': ['clock1030']},
# '1f566': {'canonical_name': 'X', 'aliases': ['clock1130']},
# '1f567': {'canonical_name': 'X', 'aliases': ['clock1230']},
'1f3f3': {'canonical_name': 'white_flag', 'aliases': ['surrender']},
'1f3f4': {'canonical_name': 'black_flag', 'aliases': []},
'1f3c1': {'canonical_name': 'checkered_flag', 'aliases': ['race', 'go', 'start']},
'1f6a9': {'canonical_name': 'triangular_flag', 'aliases': []},
# solidarity from iemoji
'1f38c': {'canonical_name': 'crossed_flags', 'aliases': ['solidarity']},
} # type: Dict[str, Dict[str, Any]]