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' => ['g5', "😩\nsleepy |-)"],
	'(' => ['g4', "☹\nsad :-("],
	')' => ['g4', "☺\nhappy :-)"],
	'[' => ['g4', "🦇\nbat :-["],
	'<' => ['g4', "🥳\nparty <:o)"],
	'\\'=> ['g5', "😞\ndisappointed :-|"],
	"'" => ['g4', "😭\ncrying :'("],
	';' => ['g4', "😉\nwinking ;-)"],
	'@' => ['g4', "😠\nangry :-@"],
	'#' => ['g4', "🤐\ndon't tell :-#"],
	'$' => ['g4', "😳\nembarrased :-\$"],
	'+' => ['g4', "🤢\nsick +o("],
	#'^' => ['g4', "🤨\nsarcastic ^o)"],
	#'*' => ['g5', "😔\nthinking *-)"],

	'j' => ['g5', "☂\numbrella lookalike (um)"],
	'0' => ['g5', "⚽\nsoccer ball (so)"],
	'>' => ['g5', "🍕\npizza slice (pi)"],
	'I' => ['g5', "🏝\nisland with palm tree (ip)"],
	'C' => ['g5', "💻 \ndesktop computer (co)"],
	'3' => ['g5', "🐱\n:3 cat face (@)"],
	'T' => ['g5', "⛈️\nsTormy cloud (st)"],
	#'B' => ['g5', "🐑\nsheep (bah)"],
	#'@' => ['g5', "🐌\nsnail (sn)"],
	#'M' => ['g5', "💰\nmoney (mo)"],
	'9' => ['g5', "🍜\nbowl (||)"],

	# gmail character
	'M' => ['g6', "🤘\n\\m/"],
	'v' => ['g6', "💩\npoo ~@~"],
	']' => ['g6', "🤖\nrobot [:|]"],
	'{' => ['g6', "🥸\nmustache :{"],
	'X' => ['g6', "😘\nkiss :-x"],
	':' => ['g6', "🐷\npig :(:)"],
	'V' => ['g6', "🦀\ncrab V.v.V"],
	'|' => ['g5', "😐\nstraight :-|"],
	'%' => ['g6', "☯\nyin-yang (%)"],

	# popular
	'"' => ['g7', "😂\ntears of joy '^^'"],
	'/' => ['g7', "🤣\nrofl"],
	'5' => ['g7', "🙏\nhigh 5 or folded hands"],
	',' => ['g7', "🎉\nparty popper"],
	'L' => ['g7', "😍\nLove eyes"],
	'F' => ['g7', "🔥\nFire"],
	'`' => ['g7', "✨\nsparkles"],
	'=' => ['g7', "👏\nclap"],
	'2' => ['g7', "✌️\n2 fingers"],
	'E' => ['g7', "🙈\nsee no Evil monkey"],
	'B' => ['g7', "🍻\nBeer mugs"],
	'!' => ['g7', "🍆\neggplant!"],
);

my %rows = (%literal, %more);

+{
	version => '1.1',
	title => 'MessengerMoji',
	category => 'specialized',
	intro => join($/,
		'Single key access to emoji shorthands',
		'from the legacy <a href="/emoji#msn">MSN</a> app.',
	),

	tableclass => 'keys big',
	rows => [1, 0],
	def => {'' => \%rows},
	flag => {
		g2 => ['literal', "exact (X) letter equivalent"],
		g4 => ['part', "significant character in the original code"],
		g5 => ['moved', "included by a different mnemonic"],
		g6 => ['foreign', "copied from a contemporary Gmail smiley"],
		g7 => ['unicode', "popular modern character introduced later"],
	},
}
