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

my %rows = qw(
	;  🐔
	:  🐓
	+; 🦢swan??
	+; 🐤
	+: 🐥
	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 🦌Deer_cerVid_Ungulate??
	+d 🐩pooDle_Dog
	+D 🐶Dog_face
	e  🐘Elephant
	E  🦅Eagle
	+e 🦣Elder_Elephant_or_mammoth
	+E 🐹Eee!_hamstEr_face
	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  🐞ladIbug_Insect
	+i 🐿chIpmunk
	+I 🦄unIcorn_face
	j  🪼Jelly
	J  🐬Jumping_dolphin
	+j 🦐Jrimp
	k  🐨Koala
	K  🦨sKunK
	+k 🦘Kangaroo
	l  🦎Lizard
	L  🦙LLama
	+l 🐆Leopard
	+L 🦁Lion_face
	m  🐄Moo
	M  🐁Mouse
	+m 🦠Microbe
	+M 🐮Moo_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
	[  🦝raccoon_trash_Panda
	{  🐗wild_Pig
	+{ 🐼Panda_face
	+[ 🐡blowfish??
	q  🦑sQuid
	Q  🦟Mosquito
	+q 🦚peaQoQ
	r  🐀Rat
	R  🦏Rhino
	+r 🪳Roach
	+R 🐭Rodent_face
	s  🐍SSSnail
	S  🦈Shark
	+s 🦂Scorpion
	+S 🦭Seal_face
	t  🐢TurTle
	T  🐅Tiger
	+t 🦃Turkey
	+T 🐯Tiger_face
	u  🐙octopUs
	U  🐫hUmped_camel
	+u 🐪hUmped_dromedary
	+U 🐻Ursus_face
	v  🦇Vampiric_bat
	V  🕊doVe
	+v 🦫beaVer
	w  🐋Whale
	W  🪱Worm
	+w 🐃Water_buffalo
	+W 🐺Wolf_face
	x  🦖reX
	X  🐂oX
	+x 🦤eXtinct_dodo
	+X 🦊foX_face
	y  🦋butterflY
	Y  🦪oYster
	+y 🦬bYson
	z  🐑zzz_sheep
	Z  🐏zzz_ram
	+z 🦥Zzzloth
	+Z 🦓Zebra_face
	]  🐉dragon
	}  🦕sauropod
	+] 🪸coral??
	+} 🐲dragon_face
);
s/.\K/\n/, y/_/ / for values %rows;

#	🐠tropical_fish

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.0',
	title => 'Unicode animals',
	category => 'specialized',
	intro => join("\n",
	),
	moderows => '5421-1',
	flag => {
		g3 => ['initial'  => 'initial emoji in Unicode 6.0'],
		g4 => ['8.0'      => ''],
		g5 => ['10.0'     => ''],
		g7 => ['later'    => 'Unicode 11.0 or above'],
	},
}
