use utf8;
use strict;
use warnings;
no  warnings 'qw';
use Shiar_Sheet::KeyboardChars 'kbchars';

my %rows = qw(
	a  🐒Apey_monkey
	A  🐜Ant
	+a 🕷Arachnid
	+A 🐵Apey_face
	b  🐇Bunny
	B  🐦Bird
	+b 🦡Badger
	+B 🐰Bunny_face
	c  🐈Cat
	C  🐊CroC
	+c 🦀Crab
	+C 🐱Cat_face
	d  🐕Dog
	D  🦆Duck
	+d 🐩pooDle_Dog
	+D 🐶Dog_face
	e  🐘Elephant
	E  🦅Eagle
	+e 🦣Elder_Elephant_or_mammoth
	f  🐟Fish
	F  🪰Fly
	+f 🦩Flamingo
	+F 🐸Frog_Face
	g  🐐Goat
	G  🦍Gorilla
	+g 🪿Goose
	+G 🦒Giraffe_face
	h  🐎Horse
	H  🐝Honeybee
	+h 🦔HedgeHog
	+H 🐴Horse_face
	i  🐛Insect
	I  🐿chIpmunk_or_squIrrel
	+i 🪲beetle_Insect
	+I 🦄unIcorn_face
	j  🪼Jelly
	J  🐬dolphin_Jumping
	+j 🦐Jrimp
	k  🐨Koala
	K  🦨sKunK
	+k 🦘Kangaroo
	+K 🐼fake_Koala_face_(panda)
	l  🦎Lizard
	L  🦙LLama
	+l 🐆Leopard
	+L 🦁Lion_face
	m  🐁Mouse
	M  🦠Microbe
	+m 🫏Mule_or_donkey
	+M 🐭Mouse_face
	n  🐌sNail
	N  🦛Nile_hippo
	+n 🦞Nephropid_lobster
	o  🦉Owl
	O  🦦Otter
	+o 🦧Orangutan
	+O 🫎mOOOse
	p  🐖Pig
	P  🐧Penguin
	+p 🦜Parrot
	+P 🐷Pig_face
	q  🦑sQuid
	Q  🦟Mosquito
	+q 🦚peaQoQ
	r  🐀Rat
	R  🦏Rhino
	+r 🪳Roach
	+R 🐹Rodent_hamster_face
	s  🐍SSSnail
	S  🦂Scorpion
	+s 🦈Shark
	+S 🦭Seal_face
	t  🐢TurTle
	T  🐅Tiger
	+t 🦃Turkey
	+T 🐯Tiger_face
	u  🐙octopUs
	U  🐫hUmped_camel
	+u 🐪hUmped_dromedary
	+U 🐻Ursus_face
	v  🦇Vampire_in_bat_form
	V  🕊doVe
	+v 🦫beaVer,_kurVa!
	w  🐋Whale
	W  🪱Worm
	+w 🐃Water_buffalo
	+W 🐺Wolf_face
	x  🦖reX
	X  🐂oX
	+x 🦤eXtinct_dodo
	+X 🦊foX_face
	y  🐞ladYbug
	Y  🦋butterflY
	+y 🦪oYster
	z  🐑zzz_sheep
	Z  🐏zzz_ram
	+z 🦥Zzzloth
	+Z 🦓Zebra_face
	,  🐔<:_chicken
	<  🐓<:_rooster
	+, 🐤<:_chicklet
	+< 🐥<:_chicklet_face

	>  🦢swan??
	;  🐉dragon
	:  🦕sauropod
	+; 🪸coral??
	+: 🐲dragon_face
	+> 🦝raccoon_trash_Panda
	.  🐗wild_Pig

	[  🐄horned_cow
	{  🦌horned_deer
	+[ 🦬horned_bison
	+{ 🐮cow_face
);
s/.\K/\n/, y/_/ / for values %rows;

#	🐠tropical_fish
#	🐡blowfish??

my $groups = kbchars(\%rows);

while (my ($k, $c) = each %rows) {
	$c =~ s/\n.*//;
	$groups->{def}{''}{$k} = (
		$c =~ /\p{In=1.1}/ ? 'g2' :
		$c =~ /\p{In=6.0}/ ? 'g3' :
		$c =~ /\p{In=8.0}/ ? 'g4' :
		$c =~ /\p{In=10.0}/ ? 'g5' :
		$c =~ /\p{In=10.0}/ ? 'g6' :
		'g7'
	);
}

+{
	%{ $groups },
	version => '1.1',
	title => 'Unicode animals',
	category => 'specialized',
	intro => join("\n",
		"Collecting all emoji animals as of Unicode 11.0",
		"with English mnemonics as AltGr mode.",
		'Because who needs <a href="/keyboard/altgr">letters</a>',
		'or <a href="/keyboard/altgr/emojiworks">other emoji</a>',
		'when you have direct access to all these critters and creatures.',
	),
	moderows => '5421-',
	flag => {
		g3 => ['initial'  => 'initial emoji in Unicode 6.0'],
		g4 => ['8.0'      => 'added in Unicode 7 or 8 (2015)'],
		g5 => ['10.0'     => 'added in Unicode 9 or 10 (2017)'],
		g7 => ['later'    => 'Unicode 11.0 or above'],
	},
}
