Static lookup of per-player head appearance profiles (head shape, hair, beard, skin/hair/eye colors) keyed by player id, with fallback palettes and width/length shape helpers. Used by the soccer game's player head rendering.
using System;
using System.Collections.Generic;
using System.Linq;
namespace Socer;
// Authored from the existing portrait palette/silhouette. Identity is stable across duplicates.
public sealed record PlayerHeadProfile(int HeadShape,int HairStyle,int BeardStyle,string Skin,string Hair,string Eyes)
{ public string Signature=>$"{HeadShape}:{HairStyle}:{BeardStyle}:{Skin}:{Hair}:{Eyes}"; }
public static class PlayerHeadProfiles
{
public const int Revision=6;
public const int GenericShapes=6; public const int HeadShapes=19; public const int HairStyles=20; public const int BeardStyles=8;
static Dictionary<string,PlayerHeadProfile> Profiles=Build();
static readonly string[] FallbackSkins={"#f0c5a2","#dca780","#bd845f","#985e42","#754b39","#513a30"};
static readonly string[] FallbackHair={"#211c1c","#35271f","#65452c","#b38b52","#8c482c"};
static int loadedRevision;
public static int Generation { get; private set; }=1;
public static void Reload(){Profiles=Build();loadedRevision=Revision;Generation++;}
static void EnsureCurrent(){if(loadedRevision!=Revision)Reload();}
static Dictionary<string,PlayerHeadProfile> Build()=>new(StringComparer.Ordinal)
{
["RU-00"]=new(5,15,0,"#e4b295","#967049","#496b74"),
["RU-01"]=new(0,19,7,"#b9845f","#2b221c","#496b74"),
["RU-02"]=new(3,14,0,"#d29a74","#6f4d30","#795b43"),
["RU-03"]=new(4,15,0,"#d29a74","#47342a","#795b43"),
["RU-04"]=new(3,3,0,"#d29a74","#47342a","#6b8ba0"),
["RU-05"]=new(4,4,0,"#b9845f","#c3a268","#6b8ba0"),
["RU-06"]=new(1,1,0,"#d29a74","#967049","#496b74"),
["RU-07"]=new(2,2,0,"#d29a74","#2b221c","#6b8ba0"),
["RU-08"]=new(3,3,3,"#b9845f","#47342a","#668167"),
["RU-09"]=new(4,4,0,"#e4b295","#967049","#668167"),
["RU-10"]=new(0,3,4,"#b9845f","#47342a","#496b74"),
["RU-11"]=new(5,2,0,"#e4b295","#6f4d30","#795b43"),
["RU-12"]=new(2,5,0,"#e4b295","#47342a","#496b74"),
["RU-13"]=new(1,4,6,"#b9845f","#2b221c","#496b74"),
["RU-14"]=new(2,19,0,"#e4b295","#967049","#5c4532"),
["RU-15"]=new(1,15,0,"#b9845f","#2b221c","#5c4532"),
["RU-16"]=new(4,2,0,"#d29a74","#47342a","#795b43"),
["RU-17"]=new(3,1,5,"#d29a74","#2b221c","#795b43"),
["RU-18"]=new(4,9,0,"#d29a74","#6f4d30","#668167"),
["RU-19"]=new(3,8,0,"#d29a74","#47342a","#668167"),
["RU-20"]=new(5,8,0,"#d29a74","#47342a","#6b8ba0"),
["RU-21"]=new(0,9,0,"#d29a74","#47342a","#668167"),
["RU-22"]=new(1,14,0,"#d29a74","#6f4d30","#668167"),
["RU-23"]=new(2,15,0,"#d29a74","#47342a","#668167"),
["RU-24"]=new(3,5,7,"#b9845f","#2b221c","#5c4532"),
["RU-25"]=new(4,19,0,"#d29a74","#967049","#5c4532"),
["RU-26"]=new(5,17,0,"#d29a74","#2b221c","#5c4532"),
["RU-27"]=new(0,8,6,"#b9845f","#2b221c","#795b43"),
["GB-00"]=new(1,9,0,"#d29a74","#6f4d30","#6b8ba0"),
["GB-01"]=new(2,14,0,"#d29a74","#967049","#6b8ba0"),
["GB-02"]=new(5,5,0,"#d29a74","#47342a","#496b74"),
["GB-03"]=new(0,8,0,"#d29a74","#47342a","#6b8ba0"),
["GB-04"]=new(3,4,3,"#835233","#2b221c","#496b74"),
["GB-05"]=new(4,5,0,"#d29a74","#6f4d30","#496b74"),
["GB-06"]=new(1,2,0,"#b9845f","#2b221c","#795b43"),
["GB-07"]=new(2,3,0,"#d29a74","#6f4d30","#795b43"),
["GB-08"]=new(3,4,0,"#835233","#171717","#795b43"),
["GB-09"]=new(4,13,1,"#b9845f","#2b221c","#795b43"),
["GB-10"]=new(2,9,0,"#d29a74","#6f4d30","#5c4532"),
["GB-11"]=new(1,8,0,"#9f6847","#171717","#5c4532"),
["GB-12"]=new(4,14,0,"#d29a74","#47342a","#795b43"),
["GB-13"]=new(3,9,3,"#835233","#2b221c","#795b43"),
["GB-14"]=new(0,4,0,"#d29a74","#2b221c","#496b74"),
["GB-15"]=new(5,15,7,"#b9845f","#6f4d30","#795b43"),
["GB-16"]=new(2,2,0,"#d29a74","#47342a","#6b8ba0"),
["GB-17"]=new(1,1,0,"#d29a74","#967049","#496b74"),
["GB-18"]=new(0,19,0,"#d29a74","#47342a","#6b8ba0"),
["GB-19"]=new(5,15,3,"#9f6847","#171717","#496b74"),
["GB-20"]=new(5,3,0,"#d29a74","#2b221c","#496b74"),
["GB-21"]=new(0,4,0,"#835233","#171717","#496b74"),
["GB-22"]=new(1,5,0,"#d29a74","#47342a","#496b74"),
["GB-23"]=new(2,8,0,"#d29a74","#6f4d30","#6b8ba0"),
["GB-24"]=new(1,19,7,"#d29a74","#2b221c","#5c4532"),
["GB-25"]=new(2,1,0,"#d29a74","#b74729","#795b43"),
["GB-26"]=new(3,2,0,"#d29a74","#2b221c","#795b43"),
["GB-27"]=new(4,3,0,"#9f6847","#2b221c","#795b43"),
["ES-00"]=new(4,14,2,"#d29a74","#2b221c","#668167"),
["ES-01"]=new(3,14,0,"#d29a74","#47342a","#668167"),
["ES-02"]=new(2,9,0,"#d29a74","#2b221c","#668167"),
["ES-03"]=new(1,8,0,"#d29a74","#47342a","#6b8ba0"),
["ES-04"]=new(2,2,0,"#d29a74","#2b221c","#795b43"),
["ES-05"]=new(1,1,1,"#b9845f","#47342a","#5c4532"),
["ES-06"]=new(0,19,0,"#d29a74","#2b221c","#5c4532"),
["ES-07"]=new(5,15,0,"#d29a74","#2b221c","#5c4532"),
["ES-08"]=new(2,2,0,"#d29a74","#47342a","#795b43"),
["ES-09"]=new(1,1,4,"#b9845f","#47342a","#795b43"),
["ES-10"]=new(3,4,3,"#b9845f","#2b221c","#668167"),
["ES-11"]=new(4,5,0,"#b9845f","#c3a268","#668167"),
["ES-12"]=new(5,8,0,"#d29a74","#2b221c","#5c4532"),
["ES-13"]=new(0,9,0,"#d29a74","#6f4d30","#5c4532"),
["ES-14"]=new(1,14,4,"#b9845f","#2b221c","#5c4532"),
["ES-15"]=new(2,15,0,"#d29a74","#2b221c","#795b43"),
["ES-16"]=new(3,15,0,"#d29a74","#2b221c","#795b43"),
["ES-17"]=new(4,19,3,"#9f6847","#2b221c","#795b43"),
["ES-18"]=new(1,14,0,"#d29a74","#2b221c","#795b43"),
["ES-19"]=new(2,15,0,"#d29a74","#2b221c","#496b74"),
["ES-20"]=new(2,5,0,"#d29a74","#2b221c","#496b74"),
["ES-21"]=new(1,4,0,"#d29a74","#2b221c","#795b43"),
["ES-22"]=new(4,9,0,"#d29a74","#2b221c","#496b74"),
["ES-23"]=new(3,8,0,"#d29a74","#2b221c","#496b74"),
["ES-24"]=new(4,4,5,"#b9845f","#2b221c","#5c4532"),
["ES-25"]=new(3,6,0,"#d29a74","#47342a","#5c4532"),
["ES-26"]=new(0,8,0,"#d29a74","#2b221c","#795b43"),
["ES-27"]=new(5,17,7,"#b9845f","#2b221c","#795b43"),
["FR-00"]=new(0,3,0,"#d29a74","#2b221c","#496b74"),
["FR-01"]=new(5,2,0,"#d29a74","#6f4d30","#496b74"),
["FR-02"]=new(4,2,0,"#d29a74","#2b221c","#795b43"),
["FR-03"]=new(3,1,0,"#d29a74","#2b221c","#795b43"),
["FR-04"]=new(4,9,0,"#633c28","#171717","#6b8ba0"),
["FR-05"]=new(3,8,5,"#b9845f","#2b221c","#6b8ba0"),
["FR-06"]=new(2,7,0,"#b9845f","#2b221c","#6b8ba0"),
["FR-07"]=new(1,11,0,"#d29a74","#2b221c","#496b74"),
["FR-08"]=new(2,19,0,"#d29a74","#967049","#5c4532"),
["FR-09"]=new(1,5,6,"#b9845f","#2b221c","#668167"),
["FR-10"]=new(5,4,0,"#d29a74","#2b221c","#5c4532"),
["FR-11"]=new(0,5,0,"#d29a74","#6f4d30","#5c4532"),
["FR-12"]=new(1,8,6,"#b9845f","#47342a","#5c4532"),
["FR-13"]=new(2,6,1,"#d29a74","#2b221c","#795b43"),
["FR-14"]=new(3,4,3,"#835233","#171717","#795b43"),
["FR-15"]=new(4,19,0,"#d29a74","#2b221c","#795b43"),
["FR-16"]=new(5,15,0,"#d29a74","#2b221c","#496b74"),
["FR-17"]=new(0,19,0,"#d29a74","#c3a268","#496b74"),
["FR-18"]=new(1,19,0,"#d29a74","#2b221c","#496b74"),
["FR-19"]=new(2,1,6,"#b9845f","#2b221c","#6b8ba0"),
["FR-20"]=new(0,9,6,"#835233","#171717","#5c4532"),
["FR-21"]=new(5,8,0,"#d29a74","#47342a","#5c4532"),
["FR-22"]=new(2,14,0,"#9f6847","#171717","#795b43"),
["FR-23"]=new(1,14,0,"#d29a74","#967049","#795b43"),
["FR-24"]=new(2,3,5,"#b9845f","#2b221c","#668167"),
["FR-25"]=new(1,2,0,"#835233","#171717","#668167"),
["FR-26"]=new(4,5,0,"#d29a74","#2b221c","#5c4532"),
["FR-27"]=new(3,4,7,"#b9845f","#47342a","#668167"),
["DE-00"]=new(3,1,0,"#d29a74","#6f4d30","#496b74"),
["DE-01"]=new(4,2,0,"#d29a74","#47342a","#496b74"),
["DE-02"]=new(5,3,0,"#e4b295","#967049","#496b74"),
["DE-03"]=new(0,4,5,"#d29a74","#2b221c","#6b8ba0"),
["DE-04"]=new(1,4,0,"#d29a74","#967049","#6b8ba0"),
["DE-05"]=new(2,5,0,"#d29a74","#47342a","#6b8ba0"),
["DE-06"]=new(3,8,0,"#d29a74","#47342a","#668167"),
["DE-07"]=new(4,9,0,"#d29a74","#47342a","#668167"),
["DE-08"]=new(1,4,0,"#d29a74","#2b221c","#668167"),
["DE-09"]=new(2,5,6,"#b9845f","#967049","#668167"),
["DE-10"]=new(4,1,0,"#d29a74","#2b221c","#668167"),
["DE-11"]=new(3,19,0,"#d29a74","#6f4d30","#668167"),
["DE-12"]=new(2,15,0,"#b9845f","#171717","#668167"),
["DE-13"]=new(1,14,4,"#b9845f","#47342a","#6b8ba0"),
["DE-14"]=new(2,4,0,"#d29a74","#47342a","#795b43"),
["DE-15"]=new(1,3,0,"#d29a74","#6f4d30","#5c4532"),
["DE-16"]=new(0,2,0,"#d29a74","#967049","#5c4532"),
["DE-17"]=new(5,1,0,"#d29a74","#47342a","#5c4532"),
["DE-18"]=new(2,4,0,"#d29a74","#2b221c","#496b74"),
["DE-19"]=new(1,3,0,"#d29a74","#6f4d30","#795b43"),
["DE-20"]=new(1,2,0,"#e4b295","#b74729","#496b74"),
["DE-21"]=new(2,3,0,"#d29a74","#2b221c","#496b74"),
["DE-22"]=new(5,19,0,"#d29a74","#967049","#795b43"),
["DE-23"]=new(0,1,3,"#d29a74","#2b221c","#496b74"),
["DE-24"]=new(5,5,0,"#b9845f","#171717","#6b8ba0"),
["DE-25"]=new(0,19,1,"#b9845f","#47342a","#668167"),
["DE-26"]=new(3,4,0,"#d29a74","#2b221c","#6b8ba0"),
["DE-27"]=new(4,5,0,"#b9845f","#c3a268","#6b8ba0"),
["BR-00"]=new(0,5,0,"#b9845f","#2b221c","#6b8ba0"),
["BR-01"]=new(5,4,3,"#9f6847","#2b221c","#6b8ba0"),
["BR-02"]=new(4,4,0,"#b9845f","#2b221c","#496b74"),
["BR-03"]=new(3,3,0,"#b9845f","#171717","#496b74"),
["BR-04"]=new(2,2,4,"#b9845f","#2b221c","#496b74"),
["BR-05"]=new(1,1,2,"#835233","#47342a","#795b43"),
["BR-06"]=new(0,19,0,"#d29a74","#2b221c","#795b43"),
["BR-07"]=new(5,15,5,"#b9845f","#2b221c","#795b43"),
["BR-08"]=new(2,2,0,"#b9845f","#2b221c","#795b43"),
["BR-09"]=new(1,1,0,"#9f6847","#171717","#795b43"),
["BR-10"]=new(5,8,1,"#b9845f","#2b221c","#795b43"),
["BR-11"]=new(0,7,3,"#835233","#171717","#795b43"),
["BR-12"]=new(1,4,6,"#9f6847","#2b221c","#795b43"),
["BR-13"]=new(2,19,1,"#b9845f","#2b221c","#496b74"),
["BR-14"]=new(1,8,7,"#835233","#2b221c","#668167"),
["BR-15"]=new(2,6,0,"#d29a74","#2b221c","#5c4532"),
["BR-16"]=new(3,4,4,"#d29a74","#2b221c","#5c4532"),
["BR-17"]=new(4,5,6,"#b9845f","#6f4d30","#5c4532"),
["BR-18"]=new(1,2,0,"#d29a74","#2b221c","#6b8ba0"),
["BR-19"]=new(2,3,0,"#d29a74","#2b221c","#668167"),
["BR-20"]=new(4,2,0,"#d29a74","#2b221c","#5c4532"),
["BR-21"]=new(3,1,1,"#9f6847","#171717","#5c4532"),
["BR-22"]=new(0,3,7,"#835233","#171717","#795b43"),
["BR-23"]=new(5,3,0,"#d29a74","#2b221c","#795b43"),
["BR-24"]=new(2,5,0,"#d29a74","#2b221c","#496b74"),
["BR-25"]=new(1,4,0,"#b9845f","#171717","#795b43"),
["BR-26"]=new(4,9,1,"#b9845f","#2b221c","#6b8ba0"),
["BR-27"]=new(3,8,6,"#b9845f","#171717","#496b74"),
["AR-00"]=new(3,15,0,"#d29a74","#2b221c","#668167"),
["AR-01"]=new(4,15,4,"#b9845f","#2b221c","#668167"),
["AR-02"]=new(5,19,0,"#d29a74","#47342a","#668167"),
["AR-03"]=new(0,1,0,"#d29a74","#2b221c","#5c4532"),
["AR-04"]=new(1,2,0,"#d29a74","#6f4d30","#5c4532"),
["AR-05"]=new(2,3,5,"#b9845f","#2b221c","#5c4532"),
["AR-06"]=new(3,4,0,"#d29a74","#2b221c","#795b43"),
["AR-07"]=new(4,4,0,"#d29a74","#2b221c","#795b43"),
["AR-08"]=new(5,5,0,"#d29a74","#47342a","#795b43"),
["AR-09"]=new(0,8,0,"#d29a74","#47342a","#496b74"),
["AR-10"]=new(4,14,0,"#d29a74","#2b221c","#795b43"),
["AR-11"]=new(3,9,4,"#9f6847","#2b221c","#795b43"),
["AR-12"]=new(2,8,2,"#d29a74","#2b221c","#5c4532"),
["AR-13"]=new(1,8,0,"#d29a74","#6f4d30","#5c4532"),
["AR-14"]=new(2,1,0,"#d29a74","#2b221c","#496b74"),
["AR-15"]=new(1,1,0,"#d29a74","#2b221c","#496b74"),
["AR-16"]=new(0,19,3,"#d29a74","#2b221c","#496b74"),
["AR-17"]=new(5,15,0,"#d29a74","#2b221c","#795b43"),
["AR-18"]=new(0,5,0,"#d29a74","#2b221c","#668167"),
["AR-19"]=new(5,4,0,"#d29a74","#47342a","#6b8ba0"),
["AR-20"]=new(1,15,7,"#d29a74","#47342a","#795b43"),
["AR-21"]=new(2,19,0,"#d29a74","#2b221c","#795b43"),
["AR-22"]=new(5,14,0,"#d29a74","#6f4d30","#5c4532"),
["AR-23"]=new(0,14,0,"#d29a74","#2b221c","#5c4532"),
["AR-24"]=new(5,3,1,"#b9845f","#47342a","#496b74"),
["AR-25"]=new(0,3,0,"#d29a74","#2b221c","#496b74"),
["AR-26"]=new(3,1,0,"#d29a74","#2b221c","#795b43"),
["AR-27"]=new(4,2,0,"#d29a74","#2b221c","#496b74"),
["JP-00"]=new(0,14,0,"#d29a74","#2b221c","#5c4532"),
["JP-01"]=new(5,9,0,"#d29a74","#2b221c","#5c4532"),
["JP-02"]=new(2,19,0,"#d29a74","#47342a","#795b43"),
["JP-03"]=new(1,15,0,"#e4b295","#2b221c","#795b43"),
["JP-04"]=new(2,5,0,"#d29a74","#2b221c","#668167"),
["JP-05"]=new(1,4,0,"#e4b295","#2b221c","#668167"),
["JP-06"]=new(4,8,0,"#d29a74","#2b221c","#5c4532"),
["JP-07"]=new(3,10,0,"#d29a74","#2b221c","#668167"),
["JP-08"]=new(2,5,0,"#d29a74","#2b221c","#6b8ba0"),
["JP-09"]=new(1,4,0,"#d29a74","#171717","#6b8ba0"),
["JP-10"]=new(5,4,0,"#d29a74","#2b221c","#5c4532"),
["JP-11"]=new(0,5,0,"#d29a74","#c3a268","#5c4532"),
["JP-12"]=new(3,2,0,"#d29a74","#2b221c","#668167"),
["JP-13"]=new(4,3,0,"#d29a74","#2b221c","#5c4532"),
["JP-14"]=new(3,9,0,"#e4b295","#2b221c","#496b74"),
["JP-15"]=new(4,14,0,"#d29a74","#2b221c","#496b74"),
["JP-16"]=new(1,8,0,"#d29a74","#2b221c","#795b43"),
["JP-17"]=new(2,9,0,"#d29a74","#2b221c","#795b43"),
["JP-18"]=new(1,1,0,"#d29a74","#2b221c","#6b8ba0"),
["JP-19"]=new(0,15,0,"#d29a74","#2b221c","#496b74"),
["JP-20"]=new(2,9,0,"#d29a74","#2b221c","#5c4532"),
["JP-21"]=new(1,8,0,"#d29a74","#2b221c","#5c4532"),
["JP-22"]=new(0,5,0,"#d29a74","#2b221c","#5c4532"),
["JP-23"]=new(5,4,0,"#e4b295","#47342a","#668167"),
["JP-24"]=new(0,6,0,"#d29a74","#2b221c","#496b74"),
["JP-25"]=new(5,15,0,"#e4b295","#2b221c","#795b43"),
["JP-26"]=new(4,19,0,"#d29a74","#2b221c","#795b43"),
["JP-27"]=new(3,4,0,"#d29a74","#2b221c","#795b43"),
["PRO-01"]=new(2,3,3,"#b9845f","#47342a","#5c4532"),
["PRO-02"]=new(5,4,5,"#b9845f","#47342a","#668167"),
["PRO-03"]=new(0,1,1,"#d29a74","#2b221c","#668167"),
["PRO-04"]=new(5,11,1,"#d29a74","#2b221c","#795b43"),
["PRO-05"]=new(9,16,1,"#b9845f","#2b221c","#5c4532"),
["PRO-06"]=new(15,1,3,"#633c28","#171717","#5c4532"),
["PRO-07"]=new(12,17,0,"#b9845f","#171717","#5c4532"),
["PRO-08"]=new(3,2,1,"#d29a74","#47342a","#496b74"),
["PRO-09"]=new(8,7,5,"#b9845f","#2b221c","#5c4532"),
["PRO-10"]=new(17,6,0,"#835233","#171717","#5c4532"),
["PRO-11"]=new(11,2,3,"#e4b295","#6f4d30","#5c4532"),
["PRO-12"]=new(4,12,0,"#edc0a6","#c7ad78","#72a7bc"),
["PRO-13"]=new(14,3,0,"#e4b295","#47342a","#5c4532"),
["PRO-14"]=new(4,3,0,"#d29a74","#967049","#795b43"),
["PRO-15"]=new(3,5,3,"#d29a74","#47342a","#5c4532"),
["PRO-16"]=new(0,6,0,"#9f6847","#2b221c","#795b43"),
["PRO-17"]=new(5,3,3,"#d29a74","#47342a","#795b43"),
["PRO-18"]=new(4,1,1,"#d29a74","#2b221c","#5c4532"),
["PRO-19"]=new(10,5,1,"#f0c5a2","#967049","#6b8ba0"),
["PRO-20"]=new(13,2,0,"#e4b295","#2b221c","#5c4532"),
["PRO-21"]=new(18,17,0,"#9f6847","#171717","#5c4532"),
["PRO-22"]=new(5,17,0,"#d29a74","#47342a","#5c4532"),
["PRO-23"]=new(0,9,5,"#e2b295","#302822","#79604a"),
["PRO-24"]=new(6,1,0,"#9f6847","#171717","#5c4532"),
["PRO-25"]=new(2,2,3,"#d29a74","#6f4d30","#795b43"),
["PRO-26"]=new(3,3,0,"#e4b295","#967049","#795b43"),
["PRO-27"]=new(4,2,0,"#d29a74","#47342a","#496b74"),
["PRO-28"]=new(1,3,1,"#b9845f","#2b221c","#496b74"),
["PRO-29"]=new(2,3,1,"#d29a74","#47342a","#496b74"),
["PRO-30"]=new(4,2,1,"#d29a74","#47342a","#5c4532"),
["PRO-31"]=new(3,3,1,"#e4b295","#6f4d30","#668167"),
["PRO-32"]=new(2,2,3,"#d29a74","#c3a268","#668167"),
["PRO-33"]=new(1,11,0,"#9f6847","#2b221c","#668167"),
["PRO-34"]=new(2,1,3,"#b9845f","#47342a","#795b43"),
["PRO-35"]=new(1,1,1,"#b9845f","#2b221c","#795b43"),
["PRO-36"]=new(0,3,0,"#e4b295","#2b221c","#5c4532"),
["PRO-37"]=new(5,6,3,"#d29a74","#2b221c","#5c4532"),
["PRO-38"]=new(2,2,1,"#d29a74","#967049","#496b74"),
["PRO-39"]=new(1,3,0,"#e4b295","#967049","#496b74"),
["PRO-40"]=new(5,3,1,"#d29a74","#47342a","#496b74"),
["PRO-41"]=new(0,3,0,"#d29a74","#47342a","#496b74"),
["PRO-42"]=new(3,3,3,"#d29a74","#47342a","#795b43"),
["PRO-43"]=new(4,15,0,"#e4b295","#967049","#496b74"),
["PRO-44"]=new(1,15,0,"#e4b295","#47342a","#795b43"),
["PRO-45"]=new(2,6,0,"#d29a74","#2b221c","#795b43"),
["PRO-46"]=new(5,2,0,"#e4b295","#967049","#5c4532"),
["PRO-47"]=new(0,3,3,"#d29a74","#2b221c","#5c4532"),
["PRO-48"]=new(3,11,0,"#9f6847","#2b221c","#668167"),
["PRO-49"]=new(4,1,1,"#9f6847","#2b221c","#5c4532"),
["PRO-50"]=new(4,3,1,"#d29a74","#47342a","#668167"),
["PRO-51"]=new(3,6,1,"#9f6847","#2b221c","#6b8ba0"),
["PRO-52"]=new(16,14,0,"#835233","#211b18","#5c4532"),
["PRO-53"]=new(7,4,0,"#d29a74","#2b221c","#5c4532"),
// Every combination below already has near, far, hair and beard native
// exports. Reuse the library; palette and silhouette identify the player.
["PRO-58"]=new(3,1,0,"#cb9575","#28211e","#68563e"),
["PRO-59"]=new(3,3,3,"#d6a988","#61432f","#75634b"),
["PRO-60"]=new(2,11,0,"#8c593e","#211b19","#4f3d2c"),
["PRO-61"]=new(1,3,1,"#d0a17f","#2b231e","#6d573d"),
["PRO-62"]=new(4,3,0,"#e6b99a","#94704f","#668894"),
["PRO-63"]=new(5,13,0,"#e1b293","#9c7650","#796148"),
["PRO-64"]=new(3,1,0,"#6f4634","#1d1917","#493629"),
["PRO-65"]=new(4,15,0,"#edbfa0","#c0a071","#6e99a7"),
["PRO-66"]=new(3,6,1,"#c99773","#30251f","#776142"),
["PRO-67"]=new(0,9,0,"#ddb18f","#211d1b","#4b382b"),
["PRO-68"]=new(5,11,0,"#8c5b40","#231c18","#58412e"),
["PRO-69"]=new(2,3,3,"#d4a68b","#4c342b","#6b5843"),
["PRO-70"]=new(5,3,0,"#e2b395","#443128","#6a94a4"),
["PRO-71"]=new(2,1,3,"#c99779","#2c241f","#715a3e"),
["PRO-72"]=new(3,3,1,"#d5a88c","#372a21","#655039"),
["PRO-73"]=new(4,13,1,"#e6b896","#9a704b","#7694a4"),
[PlayerAppearance.ZlatanId]=new(5,16,0,"#d8ad8c","#302821","#604c36"),
[PlayerAppearance.PirloId]=new(0,13,0,"#d4a58a","#3b3028","#705c43"),
[PlayerAppearance.MaldiniId]=new(5,13,0,"#d3a68c","#47382b","#668fa1"),
[PlayerAppearance.BuffonId]=new(2,2,0,"#d6a582","#42382e","#5b4d39"),
};
public static IReadOnlyDictionary<string,PlayerHeadProfile> All {get{EnsureCurrent();return Profiles;}}
public static PlayerHeadProfile Find(string id){EnsureCurrent();return id!=null && Profiles.TryGetValue(id,out var p)?p:null;}
public static float Width(int shape)=>shape switch{1=>.96f,2=>1.04f,3=>1.05f,4=>.93f,5=>1.02f,6=>1.12f,7=>.97f,8=>1.02f,9=>.97f,10=>1.05f,11=>.95f,12=>.99f,13=>.96f,14=>.95f,15=>1.06f,16=>.96f,17=>1.06f,18=>.98f,_=>1};
public static float Length(int shape)=>shape switch{1=>1.08f,2=>.98f,3=>.92f,4=>1.05f,5=>1.10f,6=>.86f,7=>1.05f,8=>1.02f,9=>1.13f,10=>1.02f,11=>1.12f,12=>1.04f,13=>1.05f,14=>1.14f,15=>1.02f,16=>1.10f,17=>.95f,18=>1.03f,_=>1};
public static string Skin(string id,int fallback=-1,int slot=0)=>Find(id)?.Skin??FallbackSkins[fallback>=0?Math.Clamp(fallback,0,5):Math.Abs(slot)%6];
public static string Hair(string id,int fallback=-1)=>Find(id)?.Hair??FallbackHair[fallback>=0?Math.Clamp(fallback,0,4):0];
}