+use utf8;
+use strict;
+use warnings;
+no warnings 'qw';
+use Shiar_Sheet::KeyboardChars 'kbchars';
+
+my %literal = (
+ 'a' => "😇\nAngel",
+ 'b' => "🍺\nBeer mug",
+ 'c' => "☕\nCoffee Cup",
+ 'd' => "🍸\nDrink",
+ 'e' => "📧\nE-mail",
+ 'f' => "🌹\nFlower",
+ 'g' => "🎁\nGift",
+ 'h' => "😎\nHot",
+ 'i' => "💡\nIlluminating Idea",
+ 'k' => "💋\nKiss",
+ 'l' => "❤️\nLove heart",
+ 'm' => "👥\nMSN Messenger icon",
+ 'n' => "👎\nNo, thumbs down",
+ 'o' => "⏰\nO' clock",
+ 'p' => "📷\nPhoto camera",
+ 's' => "🌜\nSleeping half-moon", # no lowercase?
+ 't' => "📞\nTelephone receiver",
+ 'u' => "💔\nUn-heart",
+ 'w' => "🥀\nWilted rose",
+ 'x' => "👧\ngirl",
+ 'y' => "👍\nYes, thumbs up",
+ 'z' => "👦\nboy",
+ '~' => "🎥\nfilmstrip",
+ '@' => "🐱\ncat face",
+ '6' => "😈\n666 devil",
+ '^' => "🎂\nbirthday cake",
+ '&' => "🐶\ndog face",
+ '8' => "♪\n8th note",
+ '*' => "☆\nstar",
+ '{' => "🤗\nleft hug", # hugging face
+ '}' => "🫂\nright hug", # people hugging
+);
+$literal{$_} .= " (\u$_)" for keys %literal;
+$_ = ['g2', $_] for values %literal;
+
+my %more = (
+ 'D' => ['g4', "😃\nopen-mouthed :-D"],
+ 'O' => ['g4', "😲\nsurprised :-O"],
+ 'P' => ['g4', "😜\ntongue out :-P"],
+ 'S' => ['g4', "😖\nconfused :-S"],
+ 'Z' => ['g4', "😩\nsleepy |-)"],
+ '(' => ['g4', "☹\nsad :-("],
+ ')' => ['g4', "☺\nhappy :-)"],
+ '[' => ['g4', "🦇\nbat :-["],
+ '<' => ['g4', "🥳\nparty <:o)"],
+ '|' => ['g4', "😞\ndisappointed :-|"],
+ "'" => ['g4', "😭\ncrying :'("],
+ ';' => ['g4', "😉\nwinking ;-)"],
+ '@' => ['g4', "😠\nangry :-@"],
+ '#' => ['g4', "🤐\ndon't tell :-#"],
+ '$' => ['g4', "😳\nembarrased :-\$"],
+ '+' => ['g4', "🤢\nsick +o("],
+
+ 'j' => ['g6', "☂\numbrella lookalike (um)"],
+ '0' => ['g6', "⚽\nsoccer ball (so)"],
+ '>' => ['g6', "🍕\npizza slice (pi)"],
+ 'I' => ['g6', "🏝\nisland with palm tree (ip)"],
+ 'C' => ['g6', "💻 \ndesktop computer (co)"],
+
+ # gmail character
+ 'M' => ['g7', "🤘\n\\m/"],
+ 'v' => ['g7', "💩\npoo ~@~"],
+ ']' => ['g7', "🤖\nrobot [:|]"],
+ '{' => ['g7', "🥸\nmustache :{"],
+);
+
+my %rows = (%literal, %more);
+
++{
+ version => '1.0',
+ title => 'MessengerMoji',
+ category => 'specialized',
+ intro => '<a href="/emoji#msn">MSN</a>',
+
+ tableclass => 'keys big',
+ rows => [1, 0],
+ def => {'' => \%rows},
+ flag => {
+ g2 => ['literal', "exact (X) letter shorthands"],
+ g4 => ['part', "significant character in the original code"],
+ g6 => ['other', "included by a different mnemonic"],
+ g7 => ['new'],
+ },
+}