七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:LoveLive/data

猛汉♂百科,万男皆可猛的百科全书!转载请标注来源页面的网页链接,并声明引自猛汉百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

这个模块用于存储Module:LoveLive所需的数据。

数据结构

模块最终返回的数据是一个Lua table,由四个字段组成:charaData,charaMap,groupData,groupMap。

charaData

LoveLive!系列所有主要角色的数据,为一个table。每个角色的数据为一个键值对,其值包含以下字段:

  • id:角色的ID,与键值对的键相同,由代码自动生成。通常使用角色英文名小写,但有例外,如学园偶像音乐剧角色均以musical_开头。
  • fullName:各语种下角色的全名,包括zhHans(简体中文)、zhHant(繁体中文)、ja(日文)三个字段,每个字段下列举所有可用的表记或翻译(下同,不再赘述),其中zhHans的第一个值应为角色在萌娘百科的条目名。
  • givenName:各语种下角色的名,包括zhHans、zhHant、ja和en(英文)。
  • yohaneName:Aqours成员特有的字段,表示该角色在《幻日夜羽 -SUNSHINE in the MIRROR-》中所对应角色的名字,包括zhHant、ja和en。参见#幻日夜羽角色的处理。
  • abbr:角色名字常用的中文单字简称,可选。
  • seiyuu:角色的声优信息,为一个列表,列举曾饰演该角色的所有声优(或演员,下同),每个声优的信息包含以下字段:
    • zhHans:声优的简体中文姓名,同样是列举所有可用的表记或翻译,且第一个值应为声优在萌娘百科的条目名。
    • ja:声优的日文姓名。
    • labels:对于存在多位声优的角色(主要是音乐剧角色),列举一些可用的标签,方便以角色名[标签]的格式指定声优。
  • color:角色的主题色,选取方案见Template:LoveLive!角色颜色/doc。
  • iconType:角色的头像类型,通常无需填写,详情见下。
  • icons:角色的头像文件名列表,用于{{LoveLive!角色头像}},格式及含义如下:
    • 如果仅有1个值(无需File:前缀,下同),则头像为固定图片。
    • 如果有2个值,则默认显示第一张图片,当鼠标移动到头像上方时变为第二张(参见{{Hover}})。
    • 如果存在iconType字段,则特殊处理。目前可用的iconType包括:
      • iconType = "hasu":对于莲之空女学院学园偶像俱乐部角色,角色在不同年级时期的头像不同(在{{LoveLive!角色头像}}中由|grade=参数指定),在这里icons列表的每个值为{ grade = xxx, file = "xxx.png" }的格式,xxx为103、104、105…,且需从前期到后期排列。(此外,莲之空角色的头像显示为方形而非圆形。)
  • yohaneIcons:《幻日夜羽 -SUNSHINE in the MIRROR-》角色的头像,参见#幻日夜羽角色的处理。

charaMap

由角色的可用名称到角色ID的映射,由代码根据charaData自动生成。可用名称包括charaData中已列出的角色ID和各种语言的全名、名、简称等,其中大小写字母等价,-与_等价,·、・与无间隔号均等价,同时有一些例外,详见Template:LoveLive!角色表述/doc#角色。

groupData

LoveLive!系列各组合的数据,为一个table。每个组合的数据为一个键值对,其值包含以下字段:

  • id:组合的ID,与键值对的键相同,由代码自动生成。
  • name:组合的简体中文或英文名称。
  • nameJa:组合的日文原名,仅在与name不同时才需要填写。
  • link:组合在萌娘百科的条目名,仅在与name不同时才需要填写。
  • alternatives:组合的其他可用称呼列表,包括繁体中文名、各语种的简称等,可以与上述字段重复。
  • members:组合的成员(及声优)列表,为一个table。
    • 如果成员未曾变动,则只有一个子列表,包含所有成员的角色ID。
    • 如果曾发生过成员(或声优)变动,则列举历史上所有时期的成员组成,每一组成员的索引可以自动编号也可以手动设置,每个成员的值可指定声优。
  • color:组合的主题色。

groupMap

由组合的可用名称到组合ID的映射,由代码根据groupData自动生成。可用名称包括id、name、nameJa和alternatives的所有值,其中大小写字母等价。

技术说明

指定角色的声优

在{{LoveLive!角色表述}}等处使用时,可用以下两种格式之一指定显示角色的哪位声优:

  1. name[label],其中name是角色的可用名称(charaMap中的一个键),而label可以是声优的简体中文名、日文名或标签之一。
  2. name2,其中2或其他数字代表角色seiyuu列表中的第几个声优。
    • 不过,对于音乐剧角色,为了兼容旧的{{LoveLive!角色表述}}设计,当使用这种格式时,1、2、3、4分别被映射为2022、2023、2024-1、2024-2这四个标签,而非声优列表的第几个。因此事实上目前只有优木雪菜可用setsuna2来指定。
    • 注意:为了实现这种设计,任何角色的任一可用名称都不可以数字结尾。

如果没有指定声优,则默认显示角色的第一位声优。详细代码见Module:LoveLive的getCharaSeiyuu函数。

幻日夜羽角色的处理

在本模块中,《幻日夜羽 -SUNSHINE in the MIRROR-》的角色(除莱拉普斯外,下同)并没有单独列在charaData里、没有单独的角色ID,而是与她们在LoveLive!Sunshine!!中所对应的角色共享同一个角色ID和数据表。

幻日夜羽角色的可用名称为对应LLSS角色的所有可用名称前加上yohane-前缀,详见Template:LoveLive!角色表述/doc#角色。

在获取角色的名字或头像时,对于幻日夜羽角色,分别显示yohaneName或yohaneIcons,而非fullName、givenName或icons。

指定组合的成员组成

与指定角色声优类似,可用name2来指定显示组合的哪一组成员组成,其中2或其他数字代表组合members表的索引值(因此任何组合的任一可用名称都不可以数字结尾)。如果没有指定则默认显示索引值为1的成员组成。详细代码见Module:LoveLive的getGroupMembers函数。

维护指南

添加新的角色和组合

当企划增添新的角色和组合时,分别在charaData和groupData中添加新的键值对,并到Template:LoveLive!角色颜色/doc、Template:LoveLive!角色表述/doc、Template:LoveLive!角色头像/doc等文档中添加相应的行。

务必注意保持各个字段的数据格式,例如如果数据格式应为table,即使只有一个值也需写成table,而不能省去外层的{ }。

角色声优或组合成员变动

当角色声优、组合成员变动时,参照#技术说明在角色的seiyuu或组合的members字段中添加新的值,并视需要修改Module:LoveLive等代码。

角色头像更新

如莲之空角色的头像更新,按照#charaData中iconType = "hasu"处的说明添加新头像。

修正或增补数据

如发现现有数据有误,请修改相应数据。

可以增补角色、声优、组合各类名称的其他可用值以及多声优角色的声优标签等内容。

现在您对可用名称的修改会自动反映到Template:LoveLive!角色表述/doc#列表中,无须手动维护。

复杂需求

如有更复杂需求,或后续角色发生重名等问题,请联络C8H17OH[更多]讨论页贡献上传历史封禁及历史被删贡献移动日志巡查日志用户权限、萌娘百科LoveLive!系列编辑组成员及其他编辑者讨论解决方案。

local charaData = {
    -- μ's
    honoka = {
        fullName = {
            zhHans = {"高坂穗乃果"},
            zhHant = {"高坂穗乃果"},
            ja     = {"高坂穂乃果"}
        },
        givenName = {
            zhHans = {"穗乃果"},
            zhHant = {"穗乃果"},
            ja     = {"穂乃果"},
            en     = {"Honoka"}
        },
        abbr = {"果"},
        seiyuu = {
            {
                zhHans = {"新田惠海"},
                zhHant = {"新田惠海"},
                ja     = {"新田恵海"},
            }
        },
        color = "#FFAE00",
        icons = {
            "Name honoka icon1.png",
            "Name honoka icon2.png"
        }
    },
    eli = {
        fullName = {
            zhHans = {"绚濑绘里"},
            zhHant = {"絢瀨繪里"},
            ja     = {"絢瀬絵里"}
        },
        givenName = {
            zhHans = {"绘里"},
            zhHant = {"繪里"},
            ja     = {"絵里"},
            en     = {"Eli"}
        },
        abbr = {"绘", "繪", "絵"},
        seiyuu = {
            {
                zhHans = {"南条爱乃"},
                zhHant = {"南條愛乃"},
                ja = {"南條愛乃"}
            }
        },
        color = "#00BBFF",
        icons = {
            "Name eli icon1.png",
            "Name eli icon2.png"
        }
    },
    kotori = {
        fullName = {
            zhHans = {"南小鸟", "南琴梨"},
            zhHant = {"南小鳥", "南琴梨"},
            ja     = {"南ことり"}
        },
        givenName = {
            zhHans = {"小鸟", "琴梨"},
            zhHant = {"小鳥", "琴梨"},
            ja     = {"ことり"},
            en     = {"Kotori"}
        },
        abbr = {"鸟", "鳥"},
        seiyuu = {
            {
                zhHans = {"内田彩"},
                zhHant = {"內田彩"},
                ja     = {"内田彩"}
            }
        },
        color = "#A8A8A8",
        icons = {
            "Name kotori icon1.png",
            "Name kotori icon2.png"
        }
    },
    umi = {
        fullName = {
            zhHans = {"园田海未"},
            zhHant = {"園田海未"},
            ja     = {"園田海未"}
        },
        givenName = {
            zhHans = {"海未"},
            zhHant = {"海未"},
            ja     = {"海未"},
            en     = {"Umi"}
        },
        abbr = {"海"},
        seiyuu = {
            {
                zhHans = {"三森铃子"},
                zhHant = {"三森鈴子"},
                ja     = {"三森すずこ"}
            }
        },
        color = "#6D56FF",
        icons = {
            "Name umi icon1.png",
            "Name umi icon2.png"
        }
    },
    rin = {
        fullName = {
            zhHans = {"星空凛"},
            zhHant = {"星空凛", "星空凜"},
            ja     = {"星空凛"}
        },
        givenName = {
            zhHans = {"凛"},
            zhHant = {"凛", "凜"},
            ja     = {"凛"},
            en     = {"Rin"}
        },
        abbr = {"凛", "凜"},
        seiyuu = {
            {
                zhHans = {"饭田里穗"},
                zhHant = {"飯田里穗"},
                ja     = {"飯田里穂"}
            }
        },
        color = "#FEE155",
        icons = {
            "Name rin icon1.png",
            "Name rin icon2.png"
        }
    },
    maki = {
        fullName = {
            zhHans = {"西木野真姬"},
            zhHant = {"西木野真姬"},
            ja     = {"西木野真姫"}
        },
        givenName = {
            zhHans = {"真姬"},
            zhHant = {"真姬"},
            ja     = {"真姫"},
            en     = {"Maki"}
        },
        abbr = {"姬", "姫"},
        seiyuu = {
            {
                zhHans = {"Pile"},
                zhHant = {"Pile"},
                ja     = {"Pile"}
            }
        },
        color = "#FF6239",
        icons = {
            "Name maki icon1.png",
            "Name maki icon2.png"
        }
    },
    nozomi = {
        fullName = {
            zhHans = {"东条希"},
            zhHant = {"東條希"},
            ja     = {"東條希"}
        },
        givenName = {
            zhHans = {"希"},
            zhHant = {"希"},
            ja     = {"希"},
            en     = {"Nozomi"}
        },
        abbr = {"希"},
        seiyuu = {
            {
                zhHans = {"楠田亚衣奈"},
                zhHant = {"楠田亞衣奈"},
                ja     = {"楠田亜衣奈"}
            }
        },
        color = "#E44FFF",
        icons = {
            "Name nozomi icon1.png",
            "Name nozomi icon2.png"
        }
    },
    hanayo = {
        fullName = {
            zhHans = {"小泉花阳"},
            zhHant = {"小泉花陽"},
            ja     = {"小泉花陽"}
        },
        givenName = {
            zhHans = {"花阳"},
            zhHant = {"花陽"},
            ja     = {"花陽"},
            en     = {"Hanayo"}
        },
        abbr = {"花"},
        seiyuu = {
            {
                zhHans = {"久保百合花", "久保由利香"},
                zhHant = {"久保百合花", "久保由利香"},
                ja     = {"久保ユリカ"}
            }
        },
        color = "#44CD71",
        icons = {
            "Name hanayo icon1.png",
            "Name hanayo icon2.png"
        }
    },
    nico = {
        fullName = {
            zhHans = {"矢泽妮可", "矢泽日香"},
            zhHant = {"矢澤妮可", "矢澤日香"},
            ja     = {"矢澤にこ"}
        },
        givenName = {
            zhHans = {"妮可", "日香"},
            zhHant = {"妮可", "日香"},
            ja     = {"にこ"},
            en     = {"Nico"}
        },
        abbr = {"妮"},
        seiyuu = {
            {
                zhHans = {"德井青空"},
                zhHant = {"德井青空"},
                ja     = {"徳井青空"}
            }
        },
        color = "#FF62DD",
        icons = {
            "Name nico icon1.png",
            "Name nico icon2.png"
        }
    },

    -- A-RISE
    tsubasa = {
        fullName = {
            zhHans = {"绮罗翼"},
            zhHant = {"綺羅翼"},
            ja     = {"綺羅ツバサ"}
        },
        givenName = {
            zhHans = {"翼"},
            zhHant = {"翼"},
            ja     = {"ツバサ"},
            en     = {"Tsubasa"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"樱川惠"},
                zhHant = {"櫻川惠"},
                ja     = {"桜川めぐ", "櫻川めぐ"}
            }
        },
        color = nil,
        icons = {
            "U normal icon 23080001.png",
            "U rankup icon 23080001.png"
        }
    },
    erena = {
        fullName = {
            zhHans = {"统堂英玲奈"},
            zhHant = {"統堂英玲奈"},
            ja     = {"統堂英玲奈"}
        },
        givenName = {
            zhHans = {"英玲奈"},
            zhHant = {"英玲奈"},
            ja     = {"英玲奈"},
            en     = {"Erena"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"松永真穗"},
                zhHant = {"松永真穗"},
                ja     = {"松永真穂"}
            }
        },
        color = nil,
        icons = {
            "U normal icon 23082001.png",
            "U rankup icon 23082001.png"
        }
    },
    anju = {
        fullName = {
            zhHans = {"优木杏树"},
            zhHant = {"優木杏樹"},
            ja     = {"優木あんじゅ"}
        },
        givenName = {
            zhHans = {"杏树"},
            zhHant = {"杏樹"},
            ja     = {"あんじゅ"},
            en     = {"Anju"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"大桥步夕"},
                zhHant = {"大橋步夕"},
                ja     = {"大橋歩夕"}
            }
        },
        color = nil,
        icons = {
            "U normal icon 23081001.png",
            "U rankup icon 23081001.png"
        }
    },

    -- Aqours
    chika = {
        fullName = {
            zhHans = {"高海千歌"},
            zhHant = {"高海千歌"},
            ja     = {"高海千歌"}
        },
        givenName = {
            zhHans = {"千歌"},
            zhHant = {"千歌"},
            ja     = {"千歌"},
            en     = {"Chika"}
        },
        yohaneName = {
            zhHans = {"千歌"},
            zhHant = {"千歌"},
            ja     = {"チカ"},
            en     = {"Chika"}
        },
        abbr = {"千"},
        seiyuu = {
            {
                zhHans = {"伊波杏树"},
                zhHant = {"伊波杏樹"},
                ja     = {"伊波杏樹"}
            }
        },
        color = "#FF791B",
        icons = {
            "Name chika icon1.png",
            "Name chika icon2.png",
        },
        yohaneIcons = {
            "Name yohane-chika icon1.png",
            "Name yohane-chika icon2.png"
        }
    },
    riko = {
        fullName = {
            zhHans = {"樱内梨子"},
            zhHant = {"櫻內梨子"},
            ja     = {"桜内梨子"}
        },
        givenName = {
            zhHans = {"梨子"},
            zhHant = {"梨子"},
            ja     = {"梨子"},
            en     = {"Riko"}
        },
        yohaneName = {
            zhHans = {"梨子"},
            zhHant = {"梨子"},
            ja     = {"リコ"},
            en     = {"Riko"}
        },
        abbr = {"梨"},
        seiyuu = {
            {
                zhHans = {"逢田梨香子"},
                zhHant = {"逢田梨香子"},
                ja     = {"逢田梨香子"}
            }
        },
        color = "#FF7777",
        icons = {
            "Name riko icon1.png",
            "Name riko icon2.png"
        },
        yohaneIcons = {
            "Name yohane-riko icon1.png",
            "Name yohane-riko icon2.png"
        }
    },
    kanan = {
        fullName = {
            zhHans = {"松浦果南"},
            zhHant = {"松浦果南"},
            ja     = {"松浦果南"}
        },
        givenName = {
            zhHans = {"果南"},
            zhHant = {"果南"},
            ja     = {"果南"},
            en     = {"Kanan"}
        },
        yohaneName = {
            zhHans = {"果南"},
            zhHant = {"果南"},
            ja     = {"カナン"},
            en     = {"Kanan"}
        },
        abbr = {"南"},
        seiyuu = {
            {
                zhHans = {"诹访奈奈香"},
                zhHant = {"諏訪奈奈香"},
                ja     = {"諏訪ななか"}
            }
        },
        color = "#00D29E",
        icons = {
            "Name kanan icon1.png",
            "Name kanan icon2.png"
        },
        yohaneIcons = {
            "Name yohane-kanan icon1.png",
            "Name yohane-kanan icon2.png"
        }
    },
    dia = {
        fullName = {
            zhHans = {"黑泽黛雅"},
            zhHant = {"黑澤黛雅"},
            ja     = {"黒澤ダイヤ"}
        },
        givenName = {
            zhHans = {"黛雅"},
            zhHant = {"黛雅"},
            ja     = {"ダイヤ"},
            en     = {"Dia"}
        },
        yohaneName = {
            zhHans = {"黛雅"},
            zhHant = {"黛雅"},
            ja     = {"ダイヤ"},
            en     = {"Dia"}
        },
        abbr = {"黛"},
        seiyuu = {
            {
                zhHans = {"小宫有纱"},
                zhHant = {"小宮有紗"},
                ja     = {"小宮有紗"}
            }
        },
        color = "#F43232",
        icons = {
            "Name dia icon1.png",
            "Name dia icon2.png"
        },
        yohaneIcons = {
            "Name yohane-dia icon1.png",
            "Name yohane-dia icon2.png"
        }
    },
    you = {
        fullName = {
            zhHans = {"渡边曜"},
            zhHant = {"渡邊曜"},
            ja     = {"渡辺曜"}
        },
        givenName = {
            zhHans = {"曜"},
            zhHant = {"曜"},
            ja     = {"曜"},
            en     = {"You"}
        },
        yohaneName = {
            zhHans = {"曜"},
            zhHant = {"曜"},
            ja     = {"ヨウ"},
            en     = {"You"}
        },
        abbr = {"曜"},
        seiyuu = {
            {
                zhHans = {"齐藤朱夏"},
                zhHant = {"齊藤朱夏"},
                ja     = {"斉藤朱夏"}
            }
        },
        color = "#2AA4DB",
        icons = {
            "Name you icon1.png",
            "Name you icon2.png"
        },
        yohaneIcons = {
            "Name yohane-you icon1.png",
            "Name yohane-you icon2.png"
        }
    },
    yoshiko = {
        fullName = {
            zhHans = {"津岛善子"},
            zhHant = {"津島善子"},
            ja     = {"津島善子"}
        },
        givenName = {
            zhHans = {"善子", "夜羽"},
            zhHant = {"善子", "夜羽"},
            ja     = {"善子", "ヨハネ"},
            en     = {"Yoshiko", "Yohane"}
        },
        yohaneName = {
            zhHans = {"夜羽"},
            zhHant = {"夜羽"},
            ja     = {"ヨハネ"},
            en     = {"Yohane"}
        },
        abbr = {"善"},
        seiyuu = {
            {
                zhHans = {"小林爱香"},
                zhHant = {"小林愛香"},
                ja     = {"小林愛香"}
            }
        },
        color = "#AEAEAE",
        icons = {
            "Name yoshiko icon1.png",
            "Name yoshiko icon2.png"
        },
        yohaneIcons = {
            "Name yohane-yohane icon1.png",
            "Name yohane-yohane icon2.png"
        }
    },
    hanamaru = {
        fullName = {
            zhHans = {"国木田花丸"},
            zhHant = {"國木田花丸"},
            ja     = {"国木田花丸"}
        },
        givenName = {
            zhHans = {"花丸"},
            zhHant = {"花丸"},
            ja     = {"花丸"},
            en     = {"Hanamaru", "Maru"}
        },
        yohaneName = {
            zhHans = {"花丸"},
            zhHant = {"花丸"},
            ja     = {"ハナマル"},
            en     = {"Hanamaru", "Maru"}
        },
        abbr = {"丸"},
        seiyuu = {
            {
                zhHans = {"高槻加奈子"},
                zhHant = {"高槻加奈子"},
                ja     = {"高槻かなこ"}
            }
        },
        color = "#CFBA0F",
        icons = {
            "Name hanamaru icon1.png",
            "Name hanamaru icon2.png"
        },
        yohaneIcons = {
            "Name yohane-hanamaru icon1.png",
            "Name yohane-hanamaru icon2.png"
        }
    },
    mari = {
        fullName = {
            zhHans = {"小原鞠莉"},
            zhHant = {"小原鞠莉"},
            ja     = {"小原鞠莉"}
        },
        givenName = {
            zhHans = {"鞠莉"},
            zhHant = {"鞠莉"},
            ja     = {"鞠莉"},
            en     = {"Mari"}
        },
        yohaneName = {
            zhHans = {"鞠莉"},
            zhHant = {"鞠莉"},
            ja     = {"マリ"},
            en     = {"Mari"}
        },
        abbr = {"鞠"},
        seiyuu = {
            {
                zhHans = {"铃木爱奈"},
                zhHant = {"鈴木愛奈"},
                ja     = {"鈴木愛奈"}
            }
        },
        color = "#A530E0",
        icons = {
            "Name mari icon1.png",
            "Name mari icon2.png"
        },
        yohaneIcons = {
            "Name yohane-mari icon1.png",
            "Name yohane-mari icon2.png"
        }
    },
    ruby = {
        fullName = {
            zhHans = {"黑泽露比"},
            zhHant = {"黑澤露比"},
            ja     = {"黒澤ルビィ"}
        },
        givenName = {
            zhHans = {"露比"},
            zhHant = {"露比"},
            ja     = {"ルビィ"},
            en     = {"Ruby"}
        },
        yohaneName = {
            zhHans = {"露比"},
            zhHant = {"露比"},
            ja     = {"ルビィ"},
            en     = {"Ruby"}
        },
        abbr = {"露"},
        seiyuu = {
            {
                zhHans = {"降幡爱"},
                zhHant = {"降幡愛"},
                ja     = {"降幡愛"}
            }
        },
        color = "#EE55B7",
        icons = {
            "Name ruby icon1.png",
            "Name ruby icon2.png"
        },
        yohaneIcons = {
            "Name yohane-ruby icon1.png",
            "Name yohane-ruby icon2.png"
        }
    },

    -- Saint Snow
    sarah = {
        fullName = {
            zhHans = {"鹿角圣良"},
            zhHant = {"鹿角聖良"},
            ja     = {"鹿角聖良"}
        },
        givenName = {
            zhHans = {"圣良"},
            zhHant = {"聖良"},
            ja     = {"聖良"},
            en     = {"Sarah", "Seira"}
        },
        abbr = {"圣", "聖"},
        seiyuu = {
            {
                zhHans = {"田野麻美"},
                zhHant = {"田野麻美"},
                ja     = {"田野アサミ"}
            }
        },
        color = "#00CCFF",
        icons = {
            "U normal icon 23113001.png",
            "U rankup icon 23113001.png"
        }
    },
    leah = {
        fullName = {
            zhHans = {"鹿角理亚"},
            zhHant = {"鹿角理亞"},
            ja     = {"鹿角理亞"}
        },
        givenName = {
            zhHans = {"理亚"},
            zhHant = {"理亞"},
            ja     = {"理亞"},
            en     = {"Leah", "Ria"}
        },
        abbr = {"理"},
        seiyuu = {
            {
                zhHans = {"佐藤日向"},
                zhHant = {"佐藤日向"},
                ja     = {"佐藤日向"}
            }
        },
        color = "#BBBBBB",
        icons = {
            "U normal icon 23112001.png",
            "U rankup icon 23112001.png"
        }
    },

    -- 虹咲学园学园偶像同好会
    yu = {
        fullName = {
            zhHans = {"高咲侑"},
            zhHant = {"高咲侑"},
            ja     = {"高咲侑"}
        },
        givenName = {
            zhHans = {"侑"},
            zhHant = {"侑"},
            ja     = {"侑"},
            en     = {"Yu", "Yuu"}
        },
        abbr = {"侑"},
        seiyuu = {
            {
                zhHans = {"矢野妃菜喜"},
                zhHant = {"矢野妃菜喜"},
                ja     = {"矢野妃菜喜"}
            }
        },
        color = "#1D1D1D",
        icons = {
            "Yu Icon S1.png",
            "Yu Icon S2.png"
        }
    },
    ayumu = {
        fullName = {
            zhHans = {"上原步梦"},
            zhHant = {"上原步夢"},
            ja     = {"上原歩夢"}
        },
        givenName = {
            zhHans = {"步梦"},
            zhHant = {"步夢"},
            ja     = {"歩夢"},
            en     = {"Ayumu"}
        },
        abbr = {"步", "歩"},
        seiyuu = {
            {
                zhHans = {"大西亚玖璃"},
                zhHant = {"大西亞玖璃"},
                ja     = {"大西亜玖璃"}
            }
        },
        color = "#ED7D95",
        icons = {
            "Name ayumu icon1.png",
            "Name ayumu icon2.png"
        }
    },
    kasumi = {
        fullName = {
            zhHans = {"中须霞"},
            zhHant = {"中須霞"},
            ja     = {"中須かすみ"}
        },
        givenName = {
            zhHans = {"霞"},
            zhHant = {"霞"},
            ja     = {"かすみ"},
            en     = {"Kasumi"}
        },
        abbr = {"霞"},
        seiyuu = {
            {
                zhHans = {"相良茉优"},
                zhHant = {"相良茉優"},
                ja     = {"相良茉優"}
            }
        },
        color = "#E7D600",
        icons = {
            "Name kasumi icon1.png",
            "Name kasumi icon2.png"
        }
    },
    shizuku = {
        fullName = {
            zhHans = {"樱坂雫"},
            zhHant = {"櫻坂雫"},
            ja     = {"桜坂しずく"}
        },
        givenName = {
            zhHans = {"雫"},
            zhHant = {"雫"},
            ja     = {"しずく"},
            en     = {"Shizuku"}
        },
        abbr = {"雫"},
        seiyuu = {
            {
                zhHans = {"前田佳织里"},
                zhHant = {"前田佳織里"},
                ja     = {"前田佳織里"}
            }
        },
        color = "#01B7ED",
        icons = {
            "Name shizuku icon1.png",
            "Name shizuku icon2.png"
        }
    },
    karin = {
        fullName = {
            zhHans = {"朝香果林"},
            zhHant = {"朝香果林"},
            ja     = {"朝香果林"}
        },
        givenName = {
            zhHans = {"果林"},
            zhHant = {"果林"},
            ja     = {"果林"},
            en     = {"Karin"}
        },
        abbr = {"林"},
        seiyuu = {
            {
                zhHans = {"久保田未梦"},
                zhHant = {"久保田未夢"},
                ja     = {"久保田未夢"}
            }
        },
        color = "#485EC6",
        icons = {
            "Name karin icon1.png",
            "Name karin icon2.png"
        }
    },
    ai = {
        fullName = {
            zhHans = {"宫下爱"},
            zhHant = {"宮下愛"},
            ja     = {"宮下愛"}
        },
        givenName = {
            zhHans = {"爱"},
            zhHant = {"愛"},
            ja     = {"愛"},
            en     = {"Ai"}
        },
        abbr = {"爱", "愛"},
        seiyuu = {
            {
                zhHans = {"村上奈津实"},
                zhHant = {"村上奈津實"},
                ja     = {"村上奈津実"}
            }
        },
        color = "#FF5800",
        icons = {
            "Name ai icon1.png",
            "Name ai icon2.png"
        }
    },
    kanata = {
        fullName = {
            zhHans = {"近江彼方"},
            zhHant = {"近江彼方"},
            ja     = {"近江彼方"}
        },
        givenName = {
            zhHans = {"彼方"},
            zhHant = {"彼方"},
            ja     = {"彼方"},
            en     = {"Kanata"}
        },
        abbr = {"彼"},
        seiyuu = {
            {
                zhHans = {"鬼头明里"},
                zhHant = {"鬼頭明里"},
                ja     = {"鬼頭明里"}
            }
        },
        color = "#A664A0",
        icons = {
            "Name kanata icon1.png",
            "Name kanata icon2.png"
        }
    },
    setsuna = {
        fullName = {
            zhHans = {"优木雪菜"},
            zhHant = {"優木雪菜"},
            ja     = {"優木せつ菜"}
        },
        givenName = {
            zhHans = {"雪菜"},
            zhHant = {"雪菜"},
            ja     = {"せつ菜"},
            en     = {"Setsuna"}
        },
        abbr = {"雪", "菜"},
        seiyuu = {
            {
                zhHans = {"楠木灯"},
                zhHant = {"楠木燈"},
                ja     = {"楠木ともり"}
            },
            {
                zhHans = {"林鼓子"},
                zhHant = {"林鼓子"},
                ja     = {"林鼓子"}
            }
        },
        color = "#D81C2F",
        icons = {
            "Name setsuna icon1.png",
            "Name setsuna icon2.png"
        }
    },
    emma = {
        fullName = {
            zhHans = {"艾玛·维尔德", "艾玛·薇蒂"},
            zhHant = {"艾瑪·薇蒂", "艾瑪·維爾德"},
            ja     = {"エマ・ヴェルデ"}
        },
        givenName = {
            zhHans = {"艾玛"},
            zhHant = {"艾瑪"},
            ja     = {"エマ"},
            en     = {"Emma"}
        },
        abbr = {"艾", "玛", "瑪"},
        seiyuu = {
            {
                zhHans = {"指出毬亚"},
                zhHant = {"指出毬亞"},
                ja     = {"指出毬亜"}
            }
        },
        color = "#84C36E",
        icons = {
            "Name verde icon1.png",
            "Name verde icon2.png"
        }
    },
    rina = {
        fullName = {
            zhHans = {"天王寺璃奈"},
            zhHant = {"天王寺璃奈"},
            ja     = {"天王寺璃奈"}
        },
        givenName = {
            zhHans = {"璃奈"},
            zhHant = {"璃奈"},
            ja     = {"璃奈"},
            en     = {"Rina"}
        },
        abbr = {"璃"},
        seiyuu = {
            {
                zhHans = {"田中千惠美"},
                zhHant = {"田中千惠美"},
                ja     = {"田中ちえ美"}
            }
        },
        color = "#9CA5B9",
        icons = {
            "Name rina icon1.png",
            "Name rina icon2.png"
        }
    },
    shioriko = {
        fullName = {
            zhHans = {"三船栞子"},
            zhHant = {"三船栞子"},
            ja     = {"三船栞子"}
        },
        givenName = {
            zhHans = {"栞子"},
            zhHant = {"栞子"},
            ja     = {"栞子"},
            en     = {"Shioriko"}
        },
        abbr = {"栞"},
        seiyuu = {
            {
                zhHans = {"小泉萌香"},
                zhHant = {"小泉萌香"},
                ja     = {"小泉萌香"}
            }
        },
        color = "#37B484",
        icons = {
            "Name shioriko icon1.png",
            "Name shioriko icon2.png"
        }
    },
    mia = {
        fullName = {
            zhHans = {"米娅·泰勒", "米雅·泰勒"},
            zhHant = {"米雅·泰勒", "米婭·泰勒"},
            ja     = {"ミア・テイラー"}
        },
        givenName = {
            zhHans = {"米娅", "米雅"},
            zhHant = {"米雅", "米婭"},
            ja     = {"ミア"},
            en     = {"Mia"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"内田秀"},
                zhHant = {"內田秀"},
                ja     = {"内田秀"}
            }
        },
        color = "#A9A898",
        icons = {
            "Name mia icon1.png",
            "Name mia icon2.png"
        }
    },
    lanzhu = {
        fullName = {
            zhHans = {"钟岚珠"},
            zhHant = {"鐘嵐珠"},
            ja     = {"鐘嵐珠", "ショウ・ランジュ"}
        },
        givenName = {
            zhHans = {"岚珠"},
            zhHant = {"嵐珠"},
            ja     = {"嵐珠", "ランジュ"},
            en     = {"Lanzhu"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"法元明菜"},
                zhHant = {"法元明菜"},
                ja     = {"法元明菜"}
            }
        },
        color = "#F69992",
        icons = {
            "Name lanzhu icon1.png",
            "Name lanzhu icon2.png"
        }
    },

    -- Liella!
    kanon = {
        fullName = {
            zhHans = {"涩谷香音"},
            zhHant = {"澀谷香音"},
            ja     = {"澁谷かのん"}
        },
        givenName = {
            zhHans = {"香音"},
            zhHant = {"香音"},
            ja     = {"かのん"},
            en     = {"Kanon"}
        },
        abbr = {"音"},
        seiyuu = {
            {
                zhHans = {"伊达小百合"},
                zhHant = {"伊達小百合"},
                ja     = {"伊達さゆり"}
            }
        },
        color = "#FF7F27",
        icons = {
            "Name kanon icon.png"
        }
    },
    keke = {
        fullName = {
            zhHans = {"唐可可"},
            zhHant = {"唐可可"},
            ja     = {"唐可可", "タン・クゥクゥ"}
        },
        givenName = {
            zhHans = {"可可"},
            zhHant = {"可可"},
            ja     = {"可可", "クゥクゥ"},
            en     = {"Keke"}
        },
        abbr = {"可"},
        seiyuu = {
            {
                zhHans = {"Liyuu"},
                zhHant = {"Liyuu"},
                ja     = {"Liyuu"}
            }
        },
        color = "#A0FFF9",
        icons = {
            "Name keke icon.png"
        }
    },
    chisato = {
        fullName = {
            zhHans = {"岚千砂都"},
            zhHant = {"嵐千砂都"},
            ja     = {"嵐千砂都"}
        },
        givenName = {
            zhHans = {"千砂都"},
            zhHant = {"千砂都"},
            ja     = {"千砂都"},
            en     = {"Chisato"}
        },
        abbr = {"砂"},
        seiyuu = {
            {
                zhHans = {"岬奈子"},
                zhHant = {"岬奈子"},
                ja     = {"岬なこ"}
            }
        },
        color = "#FF6E90",
        icons = {
            "Name chisato icon.png"
        }
    },
    sumire = {
        fullName = {
            zhHans = {"平安名堇"},
            zhHant = {"平安名堇", "平安名菫"},
            ja     = {"平安名すみれ"}
        },
        givenName = {
            zhHans = {"堇"},
            zhHant = {"堇", "菫"},
            ja     = {"すみれ"},
            en     = {"Sumire"}
        },
        abbr = {"堇", "菫"},
        seiyuu = {
            {
                zhHans = {"Payton尚未", "佩顿尚未"},
                zhHant = {"Payton尚未", "佩頓尚未"},
                ja     = {"ペイトン尚未"}
            }
        },
        color = "#74F466",
        icons = {
            "Name sumire icon.png"
        }
    },
    ren = {
        fullName = {
            zhHans = {"叶月恋"},
            zhHant = {"葉月戀"},
            ja     = {"葉月恋"}
        },
        givenName = {
            zhHans = {"恋"},
            zhHant = {"戀"},
            ja     = {"恋"},
            en     = {"Ren"}
        },
        abbr = {"恋", "戀"},
        seiyuu = {
            {
                zhHans = {"青山渚"},
                zhHant = {"青山渚"},
                ja     = {"青山なぎさ"}
            }
        },
        color = "#0000A0",
        icons = {
            "Name ren icon.png"
        }
    },
    kinako = {
        fullName = {
            zhHans = {"樱小路希奈子"},
            zhHant = {"櫻小路希奈子"},
            ja     = {"桜小路きな子"}
        },
        givenName = {
            zhHans = {"希奈子"},
            zhHant = {"希奈子"},
            ja     = {"きな子"},
            en     = {"Kinako"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"铃原希实"},
                zhHant = {"鈴原希實"},
                ja     = {"鈴原希実"}
            }
        },
        color = "#FFF442",
        icons = {
            "Name kinako icon.png"
        }
    },
    mei = {
        fullName = {
            zhHans = {"米女芽衣"},
            zhHant = {"米女芽衣"},
            ja     = {"米女メイ"}
        },
        givenName = {
            zhHans = {"芽衣"},
            zhHant = {"芽衣"},
            ja     = {"メイ"},
            en     = {"Mei"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"薮岛朱音"},
                zhHant = {"藪島朱音"},
                ja     = {"薮島朱音"}
            }
        },
        color = "#FF3535",
        icons = {
            "Name mei icon.png"
        }
    },
    shiki = {
        fullName = {
            zhHans = {"若菜四季"},
            zhHant = {"若菜四季"},
            ja     = {"若菜四季"}
        },
        givenName = {
            zhHans = {"四季"},
            zhHant = {"四季"},
            ja     = {"四季"},
            en     = {"Shiki"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"大熊和奏"},
                zhHant = {"大熊和奏"},
                ja     = {"大熊和奏"}
            }
        },
        color = "#B2FFDD",
        icons = {
            "Name shiki icon.png"
        }
    },
    natsumi = {
        fullName = {
            zhHans = {"鬼冢夏美"},
            zhHant = {"鬼塚夏美"},
            ja     = {"鬼塚夏美"}
        },
        givenName = {
            zhHans = {"夏美"},
            zhHant = {"夏美"},
            ja     = {"夏美"},
            en     = {"Natsumi"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"绘森彩"},
                zhHant = {"繪森彩"},
                ja     = {"絵森彩"}
            }
        },
        color = "#FF51C4",
        icons = {
            "Name natsumi icon.png"
        }
    },
    margarete = {
        fullName = {
            zhHans = {"薇恩·玛格丽特", "葳恩·玛格丽特"},
            zhHant = {"葳恩·瑪格麗特", "薇恩·瑪格麗特"},
            ja     = {"ウィーン・マルガレーテ"}
        },
        givenName = {
            zhHans = {"玛格丽特", "薇恩", "葳恩"},
            zhHant = {"瑪格麗特", "葳恩", "薇恩"},
            ja     = {"マルガレーテ", "ウィーン"},
            en     = {"Margarete", "Wien"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"结那"},
                zhHant = {"結那"},
                ja     = {"結那"}
            }
        },
        color = "#E49DFD",
        icons = {
            "Name Wien icon.png"
        }
    },
    tomari = {
        fullName = {
            zhHans = {"鬼冢冬毬"},
            zhHant = {"鬼塚冬毬"},
            ja     = {"鬼塚冬毬"}
        },
        givenName = {
            zhHans = {"冬毬"},
            zhHant = {"冬毬"},
            ja     = {"冬毬"},
            en     = {"Tomari"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"坂仓花"},
                zhHant = {"坂倉花"},
                ja     = {"坂倉花"}
            }
        },
        color = "#4CD2E2",
        icons = {
            "Name Tomari icon.png"
        }
    },

    -- Sunny Passion
    mao = {
        fullName = {
            zhHans = {"柊摩央"},
            zhHant = {"柊摩央"},
            ja     = {"柊摩央"}
        },
        givenName = {
            zhHans = {"摩央"},
            zhHant = {"摩央"},
            ja     = {"摩央"},
            en     = {"Mao"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"结木由奈"},
                zhHant = {"結木由奈"},
                ja     = {"結木ゆな"}
            }
        },
        color = "#9A1B5A",
        icons = {
            "U rankup icon 33312001.png"
        }
    },
    yuuna = {
        fullName = {
            zhHans = {"圣泽悠奈"},
            zhHant = {"聖澤悠奈"},
            ja     = {"聖澤悠奈"}
        },
        givenName = {
            zhHans = {"悠奈"},
            zhHant = {"悠奈"},
            ja     = {"悠奈"},
            en     = {"Yuuna", "Yuna"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"吉武千飒"},
                zhHant = {"吉武千颯"},
                ja     = {"吉武千颯"}
            }
        },
        color = "#FAC03B",
        icons = {
            "U rankup icon 31311001.png"
        }
    },

    -- 幻日夜羽 -SUNSHINE in the MIRROR-
    lailaps = {
        fullName = {
            zhHans = {"莱拉普斯"},
            zhHant = {"萊拉普斯"},
            ja     = {"ライラプス"}
        },
        givenName = {
            zhHans = {"莱拉普斯"},
            zhHant = {"萊拉普斯"},
            ja     = {"ライラプス"},
            en     = {"Lailaps"}
        },
        yohaneName = {
            zhHans = {"莱拉普斯"},
            zhHant = {"萊拉普斯"},
            ja     = {"ライラプス"},
            en     = {"Lailaps"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"日笠阳子"},
                zhHant = {"日笠陽子"},
                ja     = {"日笠陽子"}
            }
        },
        color = "#7D8396"
    },

    -- 学园偶像音乐剧
    musical_rurika = {
        fullName = {
            zhHans = {"椿瑠璃香"},
            zhHant = {"椿瑠璃香"},
            ja     = {"椿ルリカ"}
        },
        givenName = {
            zhHans = {"瑠璃香"},
            zhHant = {"瑠璃香"},
            ja     = {"ルリカ"},
            en     = {"Rurika"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"堀内麻里菜"},
                zhHant = {"堀內麻里菜"},
                ja     = {"堀内まり菜"},
                labels = {"2022", "2023", "2024-1", "2024-2", "2025-tokyo-1", "2025-tokyo-2", "2025-osaka", "2026"}
            },
            {
                zhHans = {"渡边美穗"},
                zhHant = {"渡邊美穗"},
                ja     = {"渡邉美穂"},
                labels = {"tvdrama"}
            }
        },
        color = "#73B8E2",
        icons = {
            "School idol musical rurika icon1.jpg"
        }
    },
    musical_yuzuha = {
        fullName = {
            zhHans = {"皇柚叶"},
            zhHant = {"皇柚葉"},
            ja     = {"皇ユズハ"}
        },
        givenName = {
            zhHans = {"柚叶"},
            zhHant = {"柚葉"},
            ja     = {"ユズハ"},
            en     = {"Yuzuha"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"浅井七海"},
                zhHant = {"淺井七海"},
                ja     = {"浅井七海"},
                labels = {"2022", "2023", "2024-1", "2025-tokyo-1", "2025-tokyo-2", "tvdrama", "2025-osaka", "2026"}
            },
            {
                zhHans = {"铃木麻佑理"},
                zhHant = {"鈴木麻佑理"},
                ja     = {"鈴木まゆり"},
                labels = {"2024-2"}
            }
        },
        color = "#333333",
        icons = {
            "School idol musical yuzuha icon1.jpg"
        }
    },
    musical_yukino = {
        fullName = {
            zhHans = {"北条雪乃"},
            zhHant = {"北條雪乃"},
            ja     = {"北条ユキノ"}
        },
        givenName = {
            zhHans = {"雪乃"},
            zhHant = {"雪乃"},
            ja     = {"ユキノ"},
            en     = {"Yukino"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"杏茱莉亚"},
                zhHant = {"杏茱莉亞"},
                ja     = {"杏ジュリア"},
                labels = {"2022", "2023", "2024-1", "tvdrama", "2025-tokyo-1", "2025-osaka", "2026"}
            },
            {
                zhHans = {"寺田光"},
                zhHant = {"寺田光"},
                ja     = {"寺田光"},
                labels = {"2024-2"}
            },
            {
                zhHans = {"浅藏瑠香"},
                zhHant = {"淺藏瑠香"},
                ja     = {"浅蔵るか"},
                labels = {"2025-tokyo-2"}
            }
        },
        color = "#F58220",
        icons = {
            "School idol musical yukino icon1.jpg"
        }
    },
    musical_hikaru = {
        fullName = {
            zhHans = {"天草光"},
            zhHant = {"天草光"},
            ja     = {"天草ヒカル"}
        },
        givenName = {
            zhHans = {"光"},
            zhHant = {"光"},
            ja     = {"ヒカル"},
            en     = {"Hikaru"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"小山璃奈"},
                zhHant = {"小山璃奈"},
                ja     = {"小山璃奈"},
                labels = {"2022", "2023", "2024-1", "2025-tokyo-2", "2025-osaka"}
            },
            {
                zhHans = {"春名真依"},
                zhHant = {"春名真依"},
                ja     = {"春名真依"},
                labels = {"2024-2"}
            },
            {
                zhHans = {"山内瑞葵"},
                zhHant = {"山內瑞葵"},
                ja     = {"山内瑞葵"},
                labels = {"tvdrama", "2025-tokyo-1"}
            },
            {
            	zhHans = {"清水理子"},
            	zhHant = {"清水理子"},
            	ja     = {"清水理子"},
            	labels = {"2026"}
            }
        },
        color = "#3C6854",
        icons = {
            "School idol musical hikaru icon1.jpg"
        }
    },
    musical_maya = {
        fullName = {
            zhHans = {"三笠玛雅"},
            zhHant = {"三笠瑪雅"},
            ja     = {"三笠マーヤ"}
        },
        givenName = {
            zhHans = {"玛雅"},
            zhHant = {"瑪雅"},
            ja     = {"マーヤ"},
            en     = {"Maya"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"佐藤美波"},
                zhHant = {"佐藤美波"},
                ja     = {"佐藤美波"},
                labels = {"2022", "2023", "2024-1"}
            },
            {
                zhHans = {"松泽可苑"},
                zhHant = {"松澤可苑"},
                ja     = {"松澤可苑"},
                labels = {"2024-2"}
            },
            {
                zhHans = {"由良朱合"},
                zhHant = {"由良朱合"},
                ja     = {"由良朱合"},
                labels = {"tvdrama", "2025-tokyo-1", "2025-tokyo-2", "2025-osaka", "2026"}
            }
        },
        color = "#E48898",
        icons = {
            "School idol musical maya icon1.jpg"
        }
    },
    musical_anzu = {
        fullName = {
            zhHans = {"泷泽杏"},
            zhHant = {"瀧澤杏"},
            ja     = {"滝沢アンズ"}
        },
        givenName = {
            zhHans = {"杏"},
            zhHant = {"杏"},
            ja     = {"アンズ"},
            en     = {"Anzu"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"关根优那"},
                zhHant = {"關根優那"},
                ja     = {"関根優那"},
                labels = {"2022", "2023", "2024-1", "2024-2"}
            },
            {
                zhHans = {"富田菜菜风"},
                zhHant = {"富田菜菜風"},
                ja     = {"冨田菜々風"},
                labels = {"tvdrama", "2025-tokyo-1", "2025-tokyo-2"}
            },
            {
                zhHans = {"西叶瑞希"},
                zhHant = {"西葉瑞希"},
                ja     = {"西葉瑞希"},
                labels = {"2025-osaka"}
            },
            {
                zhHans = {"宫本佳林"},
                zhHant = {"宮本佳林"},
                ja     = {"宮本佳林"},
                labels = {"2026"}
            }
        },
        color = "#D81F35",
        icons = {
            "School idol musical anzu icon1.jpg"
        }
    },
    musical_misuzu = {
        fullName = {
            zhHans = {"若槻美铃"},
            zhHant = {"若槻美鈴"},
            ja     = {"若槻ミスズ"}
        },
        givenName = {
            zhHans = {"美铃"},
            zhHant = {"美鈴"},
            ja     = {"ミスズ"},
            en     = {"Misuzu"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"西叶瑞希"},
                zhHant = {"西葉瑞希"},
                ja     = {"西葉瑞希"},
                labels = {"2022", "2023", "2024-1", "2025-tokyo-2"}
            },
            {
                zhHans = {"南野巴那"},
                zhHant = {"南野巴那"},
                ja     = {"南野巴那"},
                labels = {"2024-2", "2026-2"}
            },
            {
                zhHans = {"安本彩花"},
                zhHant = {"安本彩花"},
                ja     = {"安本彩花"},
                labels = {"tvdrama", "2025-tokyo-1", "2025-osaka", "2026-1"}
            }
        },
        color = "#004C71",
        icons = {
            "School idol musical misuzu icon1.jpg"
        }
    },
    musical_toa = {
        fullName = {
            zhHans = {"来栖户亚"},
            zhHant = {"來栖戶亞", "來棲戶亞"},
            ja     = {"来栖トア"}
        },
        givenName = {
            zhHans = {"户亚"},
            zhHant = {"戶亞"},
            ja     = {"トア"},
            en     = {"Toa"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"星守纱凪"},
                zhHant = {"星守紗凪"},
                ja     = {"星守紗凪"},
                labels = {"2022", "2023"}
            },
            {
                zhHans = {"黑木美佑"},
                zhHant = {"黑木美佑"},
                ja     = {"黒木美佑"},
                labels = {"2024-1"}
            },
            {
                zhHans = {"西田有爱"},
                zhHant = {"西田有愛"},
                ja     = {"西田有愛"},
                labels = {"2024-2", "2025-tokyo-2"}
            },
            {
                zhHans = {"仲村悠菜"},
                zhHant = {"仲村悠菜"},
                ja     = {"仲村悠菜"},
                labels = {"tvdrama", "2025-tokyo-1", "2025-osaka", "2026-1"}
            },
            {
                zhHans = {"及川结依"},
                zhHant = {"及川結依"},
                ja     = {"及川結依"},
                labels = {"2026-2"}
            }
        },
        color = "#FF8C90",
        icons = {
            "School idol musical toa icon1.jpg"
        }
    },
    musical_rena = {
        fullName = {
            zhHans = {"铃贺丽奈"},
            zhHant = {"鈴賀麗奈"},
            ja     = {"鈴賀レナ"}
        },
        givenName = {
            zhHans = {"丽奈"},
            zhHant = {"麗奈"},
            ja     = {"レナ"},
            en     = {"Rena"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"三田美吹"},
                zhHant = {"三田美吹"},
                ja     = {"三田美吹"},
                labels = {"2022", "2024-1"}
            },
            {
                zhHans = {"铃木麻佑理"},
                zhHant = {"鈴木麻佑理"},
                ja     = {"鈴木まゆり"},
                labels = {"2023", "2025-tokyo-2"}
            },
            {
                zhHans = {"加藤夕夏"},
                zhHant = {"加藤夕夏"},
                ja     = {"加藤夕夏"},
                labels = {"2024-2"}
            },
            {
                zhHans = {"里菜"},
                zhHant = {"里菜"},
                ja     = {"里菜"},
                labels = {"tvdrama", "2025-tokyo-1", "2025-osaka"}
            },
            {
                zhHans = {"井上音生"},
                zhHant = {"井上音生"},
                ja     = {"井上音生"},
                labels = {"2026"}
            }
        },
        color = "#ABC900",
        icons = {
            "School idol musical rena icon1.jpg"
        }
    },
    musical_sayaka = {
        fullName = {
            zhHans = {"晴风沙耶香"},
            zhHant = {"晴風沙耶香"},
            ja     = {"晴風サヤカ"}
        },
        givenName = {
            zhHans = {"沙耶香"},
            zhHant = {"沙耶香"},
            ja     = {"サヤカ"},
            en     = {"Sayaka"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"青山瑠里"},
                zhHant = {"青山瑠里"},
                ja     = {"青山瑠里"},
                labels = {"2022", "2023"}
            },
            {
                zhHans = {"西田平里"},
                zhHant = {"西田平里"},
                ja     = {"西田ひらり"},
                labels = {"2024-1"}
            },
            {
                zhHans = {"山本爱梨"},
                zhHant = {"山本愛梨"},
                ja     = {"山本愛梨"},
                labels = {"2024-2", "tvdrama", "2025-tokyo-1", "2025-osaka"}
            },
            {
                zhHans = {"铃木麻佑理"},
                zhHant = {"鈴木麻佑理"},
                ja     = {"鈴木まゆり"},
                labels = {"2025-tokyo-2"}
            },
            {
                zhHans = {"村山结香"},
                zhHant = {"村山結香"},
                ja     = {"村山結香"},
                labels = {"2026"}
            }
        },
        color = "#E6D33B",
        icons = {
            "School idol musical sayaka icon1.jpg"
        }
    },
    musical_madoka = {
        fullName = {
            zhHans = {"椿圆香"},
            zhHant = {"椿圓香"},
            ja     = {"椿マドカ"}
        },
        givenName = {
            zhHans = {"圆香"},
            zhHant = {"圓香"},
            ja     = {"マドカ"},
            en     = {"Madoka"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"苍乃夕妃"},
                zhHant = {"蒼乃夕妃"},
                ja     = {"蒼乃夕妃"},
                labels = {"2022", "2023", "2024-1", "2024-2", "2025-tokyo-1", "2025-tokyo-2", "2025-osaka", "2026"}
            },
            {
                zhHans = {"主滨晴美"},
                zhHant = {"主濱晴美"},
                ja     = {"しゅはまはるみ"},
                labels = {"tvdrama"}
            }
        },
        color = "#34582C"
    },
    musical_kyoka = {
        fullName = {
            zhHans = {"泷泽杏花"},
            zhHant = {"瀧澤杏花"},
            ja     = {"滝沢キョウカ"}
        },
        givenName = {
            zhHans = {"杏花"},
            zhHant = {"杏花"},
            ja     = {"キョウカ"},
            en     = {"Kyoka"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"冈村沙耶香"},
                zhHant = {"岡村沙耶香"},
                ja     = {"岡村さやか"},
                labels = {"2022", "2023", "2024-1", "2024-2", "2025-tokyo-1", "2025-tokyo-2", "2026"}
            },
            {
                zhHans = {"音月桂"},
                zhHant = {"音月桂"},
                ja     = {"音月桂"},
                labels = {"tvdrama"}
            },
            {
                zhHans = {"福田绘里"},
                zhHant = {"福田繪里"},
                ja     = {"福田えり"},
                labels = {"2025-osaka"}
            }
        },
        color = "#AC3040"
    },

    -- 莲之空女学院学园偶像俱乐部
    kaho = {
        fullName = {
            zhHans = {"日野下花帆"},
            zhHant = {"日野下花帆"},
            ja     = {"日野下花帆"}
        },
        givenName = {
            zhHans = {"花帆"},
            zhHant = {"花帆"},
            ja     = {"花帆"},
            en     = {"Kaho"}
        },
        abbr = {"帆"},
        seiyuu = {
            {
                zhHans = {"榆井希实"},
                zhHant = {"榆井希實"},
                ja     = {"楡井希実"}
            }
        },
        color = "#F8B500",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name kaho icon 103.png" },
            { grade = 104, file = "Name kaho icon 104.png" },
            { grade = 105, file = "Name kaho icon 105.png" }
        }
    },
    sayaka = {
        fullName = {
            zhHans = {"村野沙耶香"},
            zhHant = {"村野沙耶香"},
            ja     = {"村野さやか"}
        },
        givenName = {
            zhHans = {"沙耶香"},
            zhHant = {"沙耶香"},
            ja     = {"さやか"},
            en     = {"Sayaka"}
        },
        abbr = {"沙"},
        seiyuu = {
            {
                zhHans = {"野中心菜"},
                zhHant = {"野中心菜"},
                ja     = {"野中ここな"}
            }
        },
        color = "#5383C3",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name sayaka icon 103.png" },
            { grade = 104, file = "Name sayaka icon 104.png" },
            { grade = 105, file = "Name sayaka icon 105.png" }
        }
    },
    kozue = {
        fullName = {
            zhHans = {"乙宗梢"},
            zhHant = {"乙宗梢"},
            ja     = {"乙宗梢"}
        },
        givenName = {
            zhHans = {"梢"},
            zhHant = {"梢"},
            ja     = {"梢"},
            en     = {"Kozue"}
        },
        abbr = {"梢"},
        seiyuu = {
            {
                zhHans = {"花宫初奈"},
                zhHant = {"花宮初奈"},
                ja     = {"花宮初奈"}
            }
        },
        color = "#68BE8D",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name kozue icon 103.png" },
            { grade = 104, file = "Name kozue icon 104.png" }
        }
    },
    tsuzuri = {
        fullName = {
            zhHans = {"夕雾缀理"},
            zhHant = {"夕霧綴理"},
            ja     = {"夕霧綴理"}
        },
        givenName = {
            zhHans = {"缀理"},
            zhHant = {"綴理"},
            ja     = {"綴理"},
            en     = {"Tsuzuri"}
        },
        abbr = {"缀", "綴"},
        seiyuu = {
            {
                zhHans = {"佐佐木琴子"},
                zhHant = {"佐佐木琴子"},
                ja     = {"佐々木琴子"}
            }
        },
        color = "#BA2636",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name tsuzuri icon 103.png" },
            { grade = 104, file = "Name tsuzuri icon 104.png" }
        }
    },
    rurino = {
        fullName = {
            zhHans = {"大泽瑠璃乃"},
            zhHant = {"大澤瑠璃乃"},
            ja     = {"大沢瑠璃乃"}
        },
        givenName = {
            zhHans = {"瑠璃乃"},
            zhHant = {"瑠璃乃"},
            ja     = {"瑠璃乃"},
            en     = {"Rurino"}
        },
        abbr = {"瑠", "乃"},
        seiyuu = {
            {
                zhHans = {"菅叶和"},
                zhHant = {"菅叶和"},
                ja     = {"菅叶和"}
            }
        },
        color = "#E7609E",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name rurino icon 103.png" },
            { grade = 104, file = "Name rurino icon 104.png" },
            { grade = 105, file = "Name rurino icon 105.png" }
        }
    },
    megumi = {
        fullName = {
            zhHans = {"藤岛慈"},
            zhHant = {"藤島慈"},
            ja     = {"藤島慈"}
        },
        givenName = {
            zhHans = {"慈"},
            zhHant = {"慈"},
            ja     = {"慈"},
            en     = {"Megumi"}
        },
        abbr = {"慈"},
        seiyuu = {
            {
                zhHans = {"月音瑚奈"},
                zhHant = {"月音瑚奈"},
                ja     = {"月音こな"}
            }
        },
        color = "#C8C2C6",
        iconType = "hasu",
        icons = {
            { grade = 103, file = "Name megumi icon 103.png" },
            { grade = 104, file = "Name megumi icon 104.png" }
        }
    },
    ginko = {
        fullName = {
            zhHans = {"百生吟子"},
            zhHant = {"百生吟子"},
            ja     = {"百生吟子"}
        },
        givenName = {
            zhHans = {"吟子"},
            zhHant = {"吟子"},
            ja     = {"吟子"},
            en     = {"Ginko"}
        },
        abbr = {"吟"},
        seiyuu = {
            {
                zhHans = {"樱井阳菜"},
                zhHant = {"櫻井陽菜"},
                ja     = {"櫻井陽菜"}
            }
        },
        color = "#A2D7DD",
        iconType = "hasu",
        icons = {
            { grade = 104, file = "Name ginko icon 104.png" },
            { grade = 105, file = "Name ginko icon 105.png" },
            { grade = 106, file = "Name Ginko icon 106.png" }
        }
    },
    kosuzu = {
        fullName = {
            zhHans = {"徒町小铃"},
            zhHant = {"徒町小鈴"},
            ja     = {"徒町小鈴"}
        },
        givenName = {
            zhHans = {"小铃"},
            zhHant = {"小鈴"},
            ja     = {"小鈴"},
            en     = {"Kosuzu"}
        },
        abbr = {"铃", "鈴"},
        seiyuu = {
            {
                zhHans = {"叶山风花"},
                zhHant = {"葉山風花"},
                ja     = {"葉山風花"}
            }
        },
        color = "#FAD764",
        iconType = "hasu",
        icons = {
            { grade = 104, file = "Name kosuzu icon 104.png" },
            { grade = 105, file = "Name kosuzu icon 105.png" },
            { grade = 106, file = "Name Kosuzu icon 106.png" }
        }
    },
    hime = {
        fullName = {
            zhHans = {"安养寺姬芽"},
            zhHant = {"安養寺姬芽"},
            ja     = {"安養寺姫芽"}
        },
        givenName = {
            zhHans = {"姬芽"},
            zhHant = {"姬芽"},
            ja     = {"姫芽"},
            en     = {"Hime"}
        },
        abbr = {"芽"},
        seiyuu = {
            {
                zhHans = {"来栖凛"},
                zhHant = {"来栖凛", "来栖凜", "来棲凛", "来棲凜"},
                ja     = {"来栖りん"}
            }
        },
        color = "#9D8DE2",
        iconType = "hasu",
        icons = {
            { grade = 104, file = "Name hime icon 104.png" },
            { grade = 105, file = "Name hime icon 105.png" },
            { grade = 106, file = "Name Hime icon 106.png" }
        }
    },
    ceras = {
        fullName = {
            zhHans = {"塞拉斯·柳田·利林费尔德"},
            zhHant = {"塞拉斯·柳田·利林費爾德"},
            ja     = {"セラス・柳田・リリエンフェルト"},
        },
        givenName = {
            zhHans = {"塞拉斯"},
            zhHant = {"塞拉斯"},
            ja     = {"セラス"},
            en     = {"Ceras"}
        },
        abbr = {"塞"},
        seiyuu = {
            {
                zhHans = {"三宅美羽"},
                zhHant = {"三宅美羽"},
                ja     = {"三宅美羽"}
            }
        },
        color = "#F56455",
        iconType = "hasu",
        icons = {
            { grade = 105, file = "Name Ceras icon 105.png" },
            { grade = 106, file = "Name ceras icon 106.png" }
        }
    },
    izumi = {
        fullName = {
            zhHans = {"桂城泉"},
            zhHant = {"桂城泉"},
            ja     = {"桂城泉"}
        },
        givenName = {
            zhHans = {"泉"},
            zhHant = {"泉"},
            ja     = {"泉"},
            en     = {"Izumi"}
        },
        abbr = {"泉"},
        seiyuu = {
            {
                zhHans = {"进藤天音"},
                zhHant = {"進藤天音"},
                ja     = {"進藤あまね"}
            }
        },
        color = "#1EBECD",
        iconType = "hasu",
        icons = {
            { grade = 105, file = "Name Izumi icon 105.png" },
            { grade = 106, file = "Name izumi icon 106.png" }
        }
    },
    maika = {
        fullName = {
            zhHans = {"锦上莓果"},
            zhHant = {"錦上莓果"},
            ja     = {"錦上マイカ"}
        },
        givenName = {
            zhHans = {"莓果"},
            zhHant = {"莓果"},
            ja     = {"マイカ"},
            en     = {"Maika"}
        },
        abbr = {"莓"},
        seiyuu = {
            {
                zhHans = {"星宫茱莉亚"},
                zhHant = {"星宮茱莉亞"},
                ja     = {"星宮じゅりあ"}
            }
        },
        color = "#FF9900",
        iconType = "hasu",
        icons = {
            { grade = 106, file = "Name maika icon 106.png" }
        }
    },
    aoi = {
        fullName = {
            zhHans = {"令泽葵"},
            zhHant = {"令澤葵"},
            ja     = {"令沢葵"}
        },
        givenName = {
            zhHans = {"葵"},
            zhHant = {"葵"},
            ja     = {"葵"},
            en     = {"Aoi"}
        },
        abbr = {"葵"},
        seiyuu = {
            {
                zhHans = {"朝阳花菜"},
                zhHant = {"朝陽花菜"},
                ja     = {"朝陽花菜"}
            }
        },
        color = "#EEFBC3",
        iconType = "hasu",
        icons = {
            { grade = 106, file = "Name aoi icon 106.png" }
        }
    },
    mion = {
        fullName = {
            zhHans = {"紫轮美音"},
            zhHant = {"紫輪美音"},
            ja     = {"紫輪みおん"}
        },
        givenName = {
            zhHans = {"美音"},
            zhHant = {"美音"},
            ja     = {"みおん"},
            en     = {"Mion"}
        },
        abbr = {"美"},
        seiyuu = {
            {
                zhHans = {"汤浅香苗"},
                zhHant = {"湯淺香苗"},
                ja     = {"湯浅かなえ"}
            }
        },
        color = "#6461BF",
        iconType = "hasu",
        icons = {
            { grade = 106, file = "Name mion icon 106.png" }
        }
    },
    
    sachi = {
        fullName = {
            zhHans = {"大贺美沙知"},
            zhHant = {"大賀美沙知"},
            ja     = {"大賀美沙知"}
        },
        givenName = {
            zhHans = {"沙知"},
            zhHant = {"沙知"},
            ja     = {"沙知"},
            en     = {"Sachi"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"小原好美"},
                zhHant = {"小原好美"},
                ja     = {"小原好美"}
            }
        },
        color = "#77805E",
        iconType = "hasu",
        icons = nil
    },

    -- 人生不易部!
    polka = {
        fullName = {
            zhHans = {"高桥波尔卡"},
            zhHant = {"高橋波爾卡"},
            ja     = {"高橋ポルカ"}
        },
        givenName = {
            zhHans = {"波尔卡"},
            zhHant = {"波爾卡"},
            ja     = {"ポルカ"},
            en     = {"Polka"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"绫咲穗音"},
                zhHant = {"綾咲穗音"},
                ja     = {"綾咲穂音"}
            }
        },
        color = "#CCB12E",
        icons = {
            "Name polka icon.png"
        }
    },
    mai = {
        fullName = {
            zhHans = {"麻布麻衣"},
            zhHant = {"麻布麻衣"},
            ja     = {"麻布麻衣"}
        },
        givenName = {
            zhHans = {"麻衣"},
            zhHant = {"麻衣"},
            ja     = {"麻衣"},
            en     = {"Mai"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"远藤璃菜"},
                zhHant = {"遠藤璃菜"},
                ja     = {"遠藤璃菜"}
            }
        },
        color = "#009FDF",
        icons = {
            "Name mai icon.png"
        }
    },
    akira = {
        fullName = {
            zhHans = {"五桐玲"},
            zhHant = {"五桐玲"},
            ja     = {"五桐玲"}
        },
        givenName = {
            zhHans = {"玲"},
            zhHant = {"玲"},
            ja     = {"玲"},
            en     = {"Akira"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"宫野芹"},
                zhHant = {"宮野芹"},
                ja     = {"宮野芹"}
            }
        },
        color = "#88D66E",
        icons = {
            "Name akira icon.png"
        }
    },
    hanabi = {
        fullName = {
            zhHans = {"驹形花火"},
            zhHant = {"駒形花火"},
            ja     = {"駒形花火"}
        },
        givenName = {
            zhHans = {"花火"},
            zhHant = {"花火"},
            ja     = {"花火"},
            en     = {"Hanabi"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"藤野心"},
                zhHant = {"藤野心"},
                ja     = {"藤野こころ"}
            }
        },
        color = "#FF2021",
        icons = {
            "Name hanabi icon.png"
        }
    },
    miracle = {
        fullName = {
            zhHans = {"金泽奇迹"},
            zhHant = {"金澤奇蹟", "金澤奇跡"},
            ja     = {"金澤奇跡"}
        },
        givenName = {
            zhHans = {"奇迹"},
            zhHant = {"奇蹟", "奇跡"},
            ja     = {"奇跡"},
            en     = {"Miracle"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"坂野爱羽"},
                zhHant = {"坂野愛羽"},
                ja     = {"坂野愛羽"}
            }
        },
        color = "#FFB7F1",
        icons = {
            "Name miracle icon.png"
        }
    },
    noriko = {
        fullName = {
            zhHans = {"调布乃理子", "调布法子"},
            zhHant = {"調布乃理子", "調布法子"},
            ja     = {"調布のりこ"}
        },
        givenName = {
            zhHans = {"乃理子", "法子"},
            zhHant = {"乃理子", "法子"},
            ja     = {"のりこ"},
            en     = {"Noriko"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"濑古梨爱"},
                zhHant = {"瀨古梨愛"},
                ja     = {"瀬古梨愛"}
            }
        },
        color = "#AE62FF",
        icons = {
            "Name noriko icon.png"
        }
    },
    yukuri = {
        fullName = {
            zhHans = {"春宫悠可里", "春宫由久利"},
            zhHant = {"春宮悠可里", "春宮由久利"},
            ja     = {"春宮ゆくり"}
        },
        givenName = {
            zhHans = {"悠可里", "由久利"},
            zhHant = {"悠可里", "由久利"},
            ja     = {"ゆくり"},
            en     = {"Yukuri"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"奥村优季"},
                zhHant = {"奧村優季"},
                ja     = {"奥村優季"}
            }
        },
        color = "#5ECBD1",
        icons = {
            "Name yukuri icon.png"
        }
    },
    aurora = {
        fullName = {
            zhHans = {"此花辉夜"},
            zhHant = {"此花輝夜"},
            ja     = {"此花輝夜"}
        },
        givenName = {
            zhHans = {"辉夜"},
            zhHant = {"輝夜"},
            ja     = {"輝夜"},
            en     = {"Aurora"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"天泽朱音"},
                zhHant = {"天澤朱音"},
                ja     = {"天沢朱音"}
            }
        },
        color = "#FD589E",
        icons = {
            "Name aurora icon.png"
        }
    },
    midori = {
        fullName = {
            zhHans = {"山田真绿"},
            zhHant = {"山田真綠"},
            ja     = {"山田真緑"}
        },
        givenName = {
            zhHans = {"真绿"},
            zhHant = {"真綠"},
            ja     = {"真緑"},
            en     = {"Midori"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"小户森穗花"},
                zhHant = {"小戶森穗花"},
                ja     = {"小戸森穂花"}
            }
        },
        color = "#16B500",
        icons = {
            "Name midori icon.png"
        }
    },
    shion = {
        fullName = {
            zhHans = {"佐佐木翔音"},
            zhHant = {"佐佐木翔音"},
            ja     = {"佐々木翔音"}
        },
        givenName = {
            zhHans = {"翔音"},
            zhHant = {"翔音"},
            ja     = {"翔音"},
            en     = {"Shion"}
        },
        abbr = {},
        seiyuu = {
            {
                zhHans = {"凉之濑葵音"},
                zhHant = {"涼之瀨葵音"},
                ja     = {"涼ノ瀬葵音"}
            }
        },
        color = "#9B9B9B",
        icons = {
            "Name shion icon.png"
        }
    }
}


local groupData = {
    -- LoveLive!
    muse = {
        name = "μ's",
        alternatives = {"μ's", "μ’s", "缪斯", "繆斯", "謬斯", "缪", "繆", "謬", "lovelive!", "lovelive"},
        members = {
            {"honoka", "eli", "kotori", "umi", "rin", "maki", "nozomi", "hanayo", "nico"}
        },
        color = "#E4007F"
    },
    printemps = {
        name = "Printemps",
        alternatives = {"printemps", "p"},
        members = {
            {"honoka", "kotori", "hanayo"}
        }
    },
    bibi = {
        name = "BiBi",
        alternatives = {"bibi", "bb"},
        members = {
            {"eli", "maki", "nico"}
        }
    },
    lily_white = {
        name = "lily white",
        alternatives = {"lily white", "llw", "lw"},
        members = {
            {"umi", "rin", "nozomi"}
        }
    },
    arise = {
        name = "A-RISE",
        alternatives = {"a-rise", "arise"},
        members = {
            {"tsubasa", "erena", "anju"}
        }
    },
    nicorinpana = {
        name = "妮可凛花阳",
        nameJa = "にこりんぱな",
        alternatives = {"妮可凛花阳", "妮可凛花陽", "妮可凜花陽", "にこりんぱな", "nicorinpana"},
        members = {
            {"nico", "rin", "hanayo"}
        }
    },

    -- LoveLive!Sunshine!!
    aqours = {
        name = "Aqours",
        alternatives = {"aqours", "水团", "水團", "水"},
        members = {
            {"chika", "riko", "kanan", "dia", "you", "yoshiko", "hanamaru", "mari", "ruby"}
        },
        color = "#00A1E9"
    },
    cyaron = {
        name = "CYaRon!",
        nameJa = "CYaRon!",
        alternatives = {"cyaron!", "cyaron!", "cyaron", "cyr"},
        members = {
            {"chika", "you", "ruby"}
        },
        color = "#FFA434"
    },
    azalea = {
        name = "AZALEA",
        alternatives = {"azalea", "aza", "aaa"},
        members = {
            {"kanan", "dia", "hanamaru"}
        },
        color = "#FF5A79"
    },
    guilty_kiss = {
        name = "Guilty Kiss",
        alternatives = {"guilty kiss", "gk"},
        members = {
            {"riko", "yoshiko", "mari"}
        },
        color = "#825DEB"
    },
    yyy = {
        name = "YYY",
        nameJa = "わいわいわい",
        alternatives = {"yyy", "わいわいわい", "waiwaiwai"},
        members = {
            {"you", "yoshiko", "ruby"}
        },
        color = "#53AB7F"
    },
    saint_snow = {
        name = "Saint Snow",
        alternatives = {"saint snow", "ss", "雪团", "雪團", "圣雪", "聖雪", "圣之雪", "聖之雪"},
        members = {
            {"sarah", "leah"}
        },
        color = "#CB3935"
    },
    saint_aqours_snow = {
        name = "Saint Aqours Snow",
        alternatives = {"saint aqours snow", "sas"},
        members = {
            {"sarah", "leah", "chika", "riko", "kanan", "dia", "you", "yoshiko", "hanamaru", "mari", "ruby"}
        }
    },
    GKSS = {
        name = "GKSS",
        alternatives = {"gkss"},
        members = {
            {"riko", "yoshiko", "mari", "sarah", "leah"}
        },
        color = "#E3511E"
    },

    -- LoveLive!虹咲学园学园偶像同好会
    nijigasaki = {
        name = "虹咲学园学园偶像同好会",
        nameJa = "虹ヶ咲学園スクールアイドル同好会",
        alternatives = {"虹咲学园学园偶像同好会", "虹咲學園學園偶像同好會", "虹ヶ咲学園スクールアイドル同好会", "虹ヶ咲", "ニジガク", "虹咲", "虹团", "虹團", "虹学会", "虹學會", "虹", "nijigaku"},
        members = {
            [1]   = {      "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna",  "emma", "rina"},
            [10]  = {      "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna",  "emma", "rina", "shioriko"},
            [12]  = {      "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna",  "emma", "rina", "shioriko", "mia", "lanzhu"},
            [13]  = {"yu", "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna",  "emma", "rina", "shioriko", "mia", "lanzhu"},
            [122] = {      "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna2", "emma", "rina", "shioriko", "mia", "lanzhu"},
            [132] = {"yu", "ayumu", "kasumi", "shizuku", "karin", "ai", "kanata", "setsuna2", "emma", "rina", "shioriko", "mia", "lanzhu"}
        },
        color = "#F39800"
    },
    diverdiva = {
        name = "DiverDiva",
        alternatives = {"diverdiva", "dd"},
        members = {
            {"karin", "ai"}
        },
        color = "#AB76F7"
    },
    azuna = {
        name = "A·ZU·NA",
        nameJa = "A・ZU・NA",
        alternatives = {"a・zu・na", "a·zu·na", "azuna", "azn"},
        members = {
            [1] = {"ayumu", "shizuku", "setsuna"},
            [2] = {"ayumu", "shizuku", "setsuna2"}
        },
        color = "#FF0042"
    },
    qu4rtz = {
        name = "QU4RTZ",
        alternatives = {"qu4rtz", "q", "q4"},
        members = {
            {"kasumi", "kanata", "emma", "rina"}
        },
        color = "#D9DB83"
    },
    r3birth = {
        name = "R3BIRTH",
        alternatives = {"r3birth", "r3"},
        members = {
            {"shioriko", "mia", "lanzhu"}
        },
        color = "#424A9D"
    },

    -- LoveLive!Superstar!!
    liella = {
        name = "Liella!",
        alternatives = {"liella!", "liella"},
        members = {
            [1]  = {"kanon", "keke", "chisato", "sumire", "ren"},
            [9]  = {"kanon", "keke", "chisato", "sumire", "ren", "kinako", "mei", "shiki", "natsumi"},
            [11] = {"kanon", "keke", "chisato", "sumire", "ren", "kinako", "mei", "shiki", "natsumi", "margarete", "tomari"}
        },
        color = "#A5469B"
    },
    catchu = {
        name = "CatChu!",
        alternatives = {"catchu!", "catchu", "cc"},
        members = {
            {"kanon", "sumire", "mei"}
        },
        color = "#EE2233"
    },
    kaleidoscore = {
        name = "KALEIDOSCORE",
        alternatives = {"kaleidoscore", "ks"},
        members = {
            {"keke", "ren", "margarete"}
        },
        color = "#AAD0D0"
    },
    syncrise = {
        name = "5yncri5e!",
        alternatives = {"5yncri5e!", "5yncri5e", "syncrise", "sr"},
        members = {
            {"chisato", "kinako", "shiki", "natsumi", "tomari"}
        },
        color = "#495AA2"
    },
    sunny_passion = {
        name = "Sunny Passion",
        alternatives = {"sunny passion", "sp"},
        members = {
            {"mao", "yuuna"}
        },
        color = "#FF683D"
    },

    -- 学园偶像音乐剧
    musical = {
        name = "学园偶像音乐剧",
        nameJa = "スクールアイドルミュージカル",
        alternatives = {"学园偶像音乐剧", "學園偶像音樂劇", "musical"},
        members = {
            {"musical-rurika", "musical-yuzuha", "musical-yukino", "musical-hikaru", "musical-maya", "musical-anzu", "musical-misuzu", "musical-toa", "musical-rena", "musical-sayaka"}
        },
        color = "#C40035"
    },
    tsubaki = {
        name = "椿咲花女子高等学校",
        nameJa = "椿咲花女子高等学校",
        link = "学园偶像音乐剧",
        alternatives = {"椿咲花女子高等学校", "椿咲花女子高等學校", "椿咲花女子高校", "椿咲花", "tsubakisakihana", "tsubaki"},
        members = {
            {"musical-rurika", "musical-yuzuha", "musical-yukino", "musical-hikaru", "musical-maya"}
        },
        color = "#507363"
    },
    taki = {
        name = "泷樱女学院",
        nameJa = "滝桜女学院",
        link = "学园偶像音乐剧",
        alternatives = {"泷樱女学院", "瀧櫻女學院", "滝桜女学院", "泷樱女学院高等学校", "泷樱女学院高等學校", "滝桜女学院高等学校", "泷樱", "瀧櫻", "滝桜", "takizakura", "taki"},
        members = {
            {"musical-anzu", "musical-misuzu", "musical-toa", "musical-rena", "musical-sayaka"}
        },
        color = "#6F1318"
    },

    -- 莲之空女学院学园偶像俱乐部
    hasunosora = {
        name = "莲之空女学院学园偶像俱乐部",
        nameJa = "蓮ノ空女学院スクールアイドルクラブ",
        link = "莲之空女学院学园偶像俱乐部(团体)",
        alternatives = {"莲之空女学院学园偶像俱乐部", "蓮之空女學院學園偶像俱樂部", "蓮ノ空女学院スクールアイドルクラブ", "莲之空", "蓮之空", "蓮ノ空", "莲", "蓮", "hasu"},
        members = {
            [4]   = {"kaho", "sayaka", "kozue", "tsuzuri"},
            [1]   = {"kaho", "sayaka", "kozue", "tsuzuri", "rurino", "megumi"},
            [104] = {"kaho", "sayaka", "kozue", "tsuzuri", "rurino", "megumi", "ginko", "kosuzu", "hime"},
            [105] = {"kaho", "sayaka",                     "rurino",           "ginko", "kosuzu", "hime", "ceras", "izumi"},
            [11]  = {"kaho", "sayaka", "kozue", "tsuzuri", "rurino", "megumi", "ginko", "kosuzu", "hime", "ceras", "izumi"},

            [106] = {"maika", "aoi", "mion", "ginko", "kosuzu", "hime", "ceras", "izumi"}
        },
        color = "#BE1400"
    },
    cerise_bouquet = {
        name = "Cerise Bouquet",
        nameJa = "スリーズブーケ",
        alternatives = {"cerise bouquet", "スリーズブーケ", "cb"},
        members = {
            [1]   = {"kaho", "kozue"},
            [104] = {"kaho", "kozue", "ginko"},
            [105] = {"kaho",          "ginko"},
            
            [106] = {"maika", "ginko"}
        },
        color = "#DA645F"
    },
    dollchestra = {
        name = "DOLLCHESTRA",
        alternatives = {"dollchestra", "dc"},
        members = {
            [1]   = {"sayaka", "tsuzuri"},
            [104] = {"sayaka", "tsuzuri", "kosuzu"},
            [105] = {"sayaka",            "kosuzu"},
            
            [106] = {"kosuzu", "ceras"}
        },
        color = "#163BCA"
    },
    miracra_park = {
        name = "Mira-Cra Park!",
        nameJa = "みらくらぱーく!",
        alternatives = {"mira-cra park!", "miracra park", "みらくらぱーく!", "mcp", "mp"},
        members = {
            [1]   = {"rurino", "megumi"},
            [104] = {"rurino", "megumi", "hime"},
            [105] = {"rurino",           "hime"},
            
            [106] = {"aoi", "hime"}
        },
        color = "#F3B171"
    },
    edel_note = {
        name = "Edel Note",
        alternatives = {"edel note", "edelnote", "en"},
        members = {
            [1]   = {"ceras", "izumi"}
        },
        color = "#3D324D"
    },
    rurito = {
        name = "Ruri&To",
        alternatives = {"rurito", "ruri&to", "ritorurito"},
        members = {
            [1]   = {"rurino", "sayaka", "kosuzu", "ceras"}
        }
    },
    prince = {
        name = "PRINCEε>ε>",
        link = "PRINCEss",
        alternatives = {"princeε>ε>", "princess"},
        members = {
            [1]   = {"hime", "kaho", "ginko", "izumi"}
        }
    },
    tasogare = {
    	name = "黄昏燐光",
    	nameJa = "誰ソ彼ノ燐光",
    	alternatives = {"燐光", "黄昏", "磷光", "rinkou", "tasogarenorinkou", "tr"},
    	members = {
    		[1]   = {"izumi"}
    	}
    },

    -- 生如百戏难!LOVELIVE! BLUEBIRD
    ikizulive = {
        name = "人生不易部!",
        nameJa = "いきづらい部!",
        alternatives = {"人生不易部!", "人生不易部", "生活好难部!", "生活好難部!", "生活好难部", "生活好難部", "いきづらい部!", "いきづらい部", "ikizulive!", "ikizulive"},
        members = {
            {"polka", "mai", "akira", "hanabi", "miracle", "noriko", "yukuri", "aurora", "midori", "shion"}
        },
        color = "#239FDD"
    },

    -- LoveLive!系列
    aiscream = {
        name = "AiScReam",
        alternatives = {"aiscream"},
        members = {
            [1]   = {"ruby", "ayumu", "shiki"},
            [2]   = {        "ayumu", "shiki", "ceras", "mai"}
        },
        color = "#E8CEB2"
    }
}


-- map character's fullName, givenName and abbr to the character's id
local charaMap = {}

local function setCharaMap(key, id)
    key = key:lower()
    local value = charaMap[key]
    if value and value ~= id then
        error(mw.ustring.format("The keyword '%s' is mapped to more than one character ids: '%s' and '%s', please check the charaData", key, value, id))
    end
    charaMap[key] = id
end

local function setCharaSeiyuuMap(chara_id, seiyuus, label, seiyuu)
    label = label:lower()
    local value = seiyuus[label]
    if value and value ~= seiyuu then
        error(mw.ustring.format("The label '%s' is already assigned to seiyuu '%s' for character '%s'", label, value.ja, chara_id))
    end
    seiyuus[label] = seiyuu
end

for id, chara in pairs(charaData) do
    chara.id = id  -- set id back to the character data

    setCharaMap(id, id)
    local result, count = id:gsub("_", "-")
    if count > 0 then
        setCharaMap(result, id)
    end

    for lang, names in pairs(chara.fullName) do
        for _, name in ipairs(names) do
            setCharaMap(name, id)
            -- remove '·' and '・' for western names
            result, count = name:gsub("[·・]", "")
            if count > 0 then
                setCharaMap(result, id)
            end
        end
    end

    for lang, names in pairs(chara.givenName) do
        for _, name in ipairs(names) do
            if (lang:find("^zh") and id == "musical_sayaka") or (lang == "en" and id:find("^musical_")) then
                -- "沙耶香" is reserved for 村野沙耶香 from Hasunosora, use "musical-沙耶香" for 晴风沙耶香 from Musical
                setCharaMap("musical-" .. name, id)
                setCharaMap("musical_" .. name, id)
            else
                setCharaMap(name, id)
            end
        end
    end

    for _, name in ipairs(chara.abbr) do
        setCharaMap(name, id)
    end

    -- map seiyuu's zhHans, ja and label to the seiyuu
    local seiyuus = chara.seiyuu
    for _, seiyuu in ipairs(seiyuus) do
        for lang, names in pairs(seiyuu) do
            for _, name in ipairs(names) do
                setCharaSeiyuuMap(id, seiyuus, name, seiyuu)
            end
        end
    end
end


-- map group's name, nameJa and alternatives to its id
local groupMap = {}

local function setGroupMap(key, id)
    key = key:lower()
    local value = groupMap[key]
    if value and value ~= id then
        error(mw.ustring.format("The keyword '%s' is mapped to more than one group ids: '%s' and '%s', please check the groupData", key, value, id))
    end
    groupMap[key] = id
end

for id, group in pairs(groupData) do
    group.id = id

    setGroupMap(id, id)
    local result, count = id:gsub("_", "-")
    if count > 0 then
        setGroupMap(result, id)
    end

    if group.name then
        setGroupMap(group.name, id)
    end

    if group.nameJa then
        setGroupMap(group.nameJa, id)
    end

    for _, name in ipairs(group.alternatives or {}) do
        setGroupMap(name, id)
    end
end


return {
    charaData = charaData,
    charaMap = charaMap,
    groupData = groupData,
    groupMap = groupMap
}