Documentation for this module may be created at မေႃႇၵျူး:scripts/data/sandbox/doc

--[=[
	When adding new scripts to this file, please don't forget to add
	style definitons for the script in [[MediaWiki:Common.css]].
]=]
local u = mw.ustring.char

local m = {}

m["Adlm"] = {
	"Adlam",
	"alphabet",
	characters = "؟ـ𞤀-𞥟",
	capitalized = true,
	direction = "rtl",
}

m["Afak"] = {
	"Afaka",
	"syllabary",
}

m["Aghb"] = {
	"Caucasian Albanian",
	"alphabet",
	characters = "𐔰-𐕯",
}

m["Ahom"] = {
	"Ahom",
	"abugida",
	characters = "𑜀-𑝏",
}

m["Arab"] = {
	"Arabic",
	"abjad",	-- more precisely, impure abjad
	varieties = {"Jawi", {"Nastaliq", "Nastaleeq"}},
	characters = "؀-ۿݐ-ݿࡰ-ࣿﭐ-﷏ﷰ-﷿ﹰ-﻾𐋠-𐋻𐹠-𐹿𐻀-𐻿𞸀-𞻿",
	direction = "rtl",
	normalizationFixes = {
		from = {"ٳ"},
		to = {"اٟ"}
	},
}

	m["fa-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		otherNames = {"Perso-Arabic"},
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["kk-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ks-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ku-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ms-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["mzn-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ota-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["pa-Arab"] = {
		"Shahmukhi",
		m["Arab"][2],
		characters = m["Arab"].characters,
		otherNames = {"Arabic"},
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ps-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["sd-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["tt-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ug-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ur-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["xka-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

-- Aran (Nastaliq) is subsumed into Arab

m["Armi"] = {
	"Imperial Aramaic",
	"abjad",
	characters = "𐡀-𐡟",
	direction = "rtl",
}

m["Armn"] = {
	"Armenian",
	"alphabet",
	characters = "԰-֏ﬓ-ﬗ",
	capitalized = true,
}

m["Avst"] = {
	"Avestan",
	"alphabet",
	characters = "𐬀-𐬿",
	direction = "rtl",
}

	m["pal-Avst"] = {
		"Pazend",
		m["Avst"][2],
		characters = m["Avst"].characters,
		direction = "rtl",
		parent = "Avst",
	}

m["Bali"] = {
	"Balinese",
	"abugida",
	characters = "ᬀ-᭿",
}

m["Bamu"] = {
	"Bamum",
	"syllabary",
	characters = "ꚠ-꛿𖠀-𖨿",
}

m["Bass"] = {
	"Bassa",
	"alphabet",
	aliases = {"Bassa Vah", "Vah"},
	characters = "𖫐-𖫿",
}

m["Batk"] = {
	"Batak",
	"abugida",
	characters = "ᯀ-᯿",
}

m["Beng"] = {
	"Bengali",
	"abugida",
	characters = "॒॑।॥ঀ-৯৲-৿᳕᳖᳘᳐᳒᳡ᳪ᳭ᳲᳵ-᳷꣱",
	normalizationFixes = {
		from = {"অা", "ঋৃ", "ঌৢ"},
		to = {"আ", "ৠ", "ৡ"}
	},
}

	m["as-Beng"] = {
		"Assamese",
		m["Beng"][2],
		otherNames = {"Bengali-Assamese", "Eastern Nagari"},
		characters = "॒॑।॥ঀ-য঱-৿᳕᳖᳘᳐᳒᳡ᳪ᳭ᳲᳵ-᳷꣱",
		normalizationFixes = m["Beng"].normalizationFixes,
	}

m["Bhks"] = {
	"Bhaiksuki",
	"abugida",
	characters = "𑰀-𑱯",
}

m["Blis"] = {
	"Blissymbols",
	"logography",
	aliases = {"Blissymbolics"},
	-- Not in Unicode
}

m["Bopo"] = {
	"Zhuyin",
	"semisyllabary",
	aliases = {"Zhuyin Fuhao", "Bopomofo"},
	characters = "ˇˉˊˋ˙˪˫、-〃〈-】〓-〟〪-〭〰〷・㄀-ㄯ﹅﹆。-・",
}

m["Brah"] = {
	"Brahmi",
	"abugida",
	characters = "𑀀-𑁿",
	normalizationFixes = {
		from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
		to = {"𑀆", "𑀌", "𑀐"}
	},
}

m["Brai"] = {
	"Braille",
	"alphabet",
	characters = "⠀-⣿",
}

m["Bugi"] = {
	"Buginese",
	"abugida",
	aliases = {"Lontara"},
	characters = "ᨀ-᨟ꧏ",
}

m["Buhd"] = {
	"Buhid",
	"abugida",
	characters = "᜵᜶ᝀ-᝟ꧏ",
}

m["Cakm"] = {
	"Chakma",
	"abugida",
	characters = "০-৯၀-၉𑄀-𑅏",
}

m["Cans"] = {
	"Canadian syllabics",
	"abugida",
	characters = "᐀-ᙿᢰ-᣿𑪰-𑪿",
}

m["Cari"] = {
	"Carian",
	"alphabet",
	characters = "𐊠-𐋟",
}

m["Cham"] = {
	"Cham",
	"abugida",
	characters = "ꨀ-꩟",
}

m["Cher"] = {
	"Cherokee",
	"syllabary",
	characters = "Ꭰ-᏿ꭰ-ꮿ",
}

m["Chrs"] = {
	"Chorasmian",
	"abjad",
	characters = "𐾰-𐿟",
	direction = "rtl",
}

m["Copt"] = {
	"Coptic",
	"alphabet",
	characters = "Ϣ-ϯⲀ-⳿𐋠-𐋻", -- this is mostly "Coptic", not unified "Greek and Coptic"
	capitalized = true,
}

m["Cpmn"] = {
	"Cypro-Minoan",
	"syllabary",
	aliases = {"Cypro Minoan"},
	characters = "𐄀𐄁𒾐-𒿿",
}

m["Cprt"] = {
	"Cypriot",
	"syllabary",
	characters = "𐄀-𐄂𐄇-𐄳𐄷-𐄿𐠀-𐠿",
	direction = "rtl",
}

m["Cyrl"] = {
	"Cyrillic",
	"alphabet",
	characters = "Ѐ-ԯᲀ-᲏ᴫᵸ᷸ⷠ-ⷿ⹃Ꙁ-ꚟ︮︯𞀰-𞂏",
	capitalized = true,
}

m["Cyrs"] = {
	"Old Cyrillic",
	m["Cyrl"][2],
	aliases = {"Early Cyrillic"},
	characters = m["Cyrl"].characters,
	capitalized = m["Cyrl"].capitalized,
	wikipedia_article = "Early Cyrillic alphabet",
}

m["Deva"] = {
	"Devanagari",
	"abugida",
	characters = "ऀ-ॿ꣠-ꣿ𑬀-𑬉",
	normalizationFixes = {
		from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्‍?ा"},
		to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
	},
}

m["Diak"] = {
	"Dhives Akuru",
	"abugida",
	aliases = {"Dives Akuru"},
	characters = "𑤀-𑤆𑤉𑤌-𑤓𑤕𑤖𑤘-𑤵𑤷𑤸𑤻-𑥆𑥐-𑥙",
}

m["Dogr"] = {
	"Dogra",
	"abugida",
	characters = "𑠀-𑠻",
}

m["Dsrt"] = {
	"Deseret",
	"alphabet",
	characters = "𐐀-𐑏",
	capitalized = true,
}

m["Dupl"] = {
	"Duployan",
	"alphabet",
	characters = "𛰀-𛱪𛱰-𛱼𛲀-𛲈𛲐-𛲙𛲜-𛲟",
}

m["Egyd"] = {
	"Demotic",
	"abjad, logography",
}

m["Egyh"] = {
	"Hieratic",
	"abjad, logography",
}

m["Egyp"] = {
	"Egyptian hieroglyphic",
	"abjad, logography",
	characters = "𓀀-𓑕",
	varieties = {"Hieratic"},
	wikipedia_article = "Egyptian hieroglyphs",
	normalizationFixes = {
		from = {"𓃁", "𓆖"},
		to = {"𓃀𓐶𓂝", "𓆓𓐳𓐷𓏏𓐰𓇿𓐸"}
	},
}

m["Elba"] = {
	"Elbasan",
	"alphabet",
	characters = "𐔀-𐔧",
}

m["Elym"] = {
	"Elymaic",
	"abjad",
	characters = "𐿠-𐿶",
	direction = "rtl",
}

m["Ethi"] = {
	"Ethiopic",
	"abugida",
	aliases = {"Ge'ez"},
	characters = "ሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ𞟠-𞟦𞟨-𞟫𞟭𞟮𞟰-𞟾",
}

m["Geok"] = {
	"Khutsuri",
	"alphabet",
	characters = "Ⴀ-ჅჇჍ჻ⴀ-ⴥⴧⴭ", -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
	varieties = {"Nuskhuri", "Asomtavruli"},
	capitalized = true,
}

m["Geor"] = {
	"Georgian",
	"alphabet",
	characters = "ა-ჿᲐ-ᲺᲽ-Ჿ", -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
	varieties = {"Mkhedruli", "Mtavruli"},
	capitalized = true,
}

m["Glag"] = {
	"Glagolitic",
	"alphabet",
	characters = "Ⰰ-ⱟ𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞀪",
	capitalized = true,
}

m["Gong"] = {
	"Gunjala Gondi",
	"abugida",
	characters = "𑵠-𑵥𑵧𑵨𑵪-𑶎𑶐𑶑𑶓-𑶘𑶠-𑶩",
}

m["Gonm"] = {
	"Masaram Gondi",
	"abugida",
	characters = "𑴀-𑴆𑴈𑴉𑴋-𑴶𑴺𑴼𑴽𑴿-𑵇𑵐-𑵙",
}

m["Goth"] = {
	"Gothic",
	"alphabet",
	characters = "𐌰-𐍊",
}

m["Gran"] = {
	"Grantha",
	"abugida",
	characters = "𑌀-𑌃𑌅-𑌌𑌏-𑌐𑌓-𑌨𑌪-𑌰𑌲𑌳𑌵-𑌹𑌼-𑍄𑍇𑍈𑍋-𑍍𑍐𑍗𑍝-𑍣𑍦-𑍬𑍰-𑍴",
}

m["Grek"] = {
	"Greek",
	"alphabet",
	characters = "Ͱ-ͷͺ-Ϳ΄-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿΩ℩ꭥ𐅀-𐆎𐆠𝈀-𝉅",
	capitalized = true,
}

	m["Polyt"] = {
		"Greek",
		m["Grek"][2],
		characters = "ἀ-῾" .. m["Grek"].characters,
		capitalized = m["Grek"].capitalized,
		parent = "Grek",
	}

m["Gujr"] = {
	"Gujarati",
	"abugida",
	characters = "ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱ૺ-૿",
	normalizationFixes = {
		from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
		to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
	},
}

m["Guru"] = {
	"Gurmukhi",
	"abugida",
	characters = "ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-੶",
	normalizationFixes = {
		from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
		to = {"ਆ", "ਐ", "ਔ", "ਇ", "ਈ", "ਏ", "ਉ", "ਊ", "ਓ"}
	},
}

m["Hang"] = {
	"Hangul",
	"syllabary",
	aliases = {"Hangeul"},
	characters = (
		"가-힣".. -- Syllables
		"ᄀ-ᇿ".. -- Jamo
		"ꥠ-ꥼ".. -- Jamo Ext-A
		"ힰ-ퟻ".. -- Jamo Ext-B
		"ㄱ-ㆎ".. -- Compat Jamo
		"ᅠ-ᅵ" -- Halfwidth
	),
}

m["Hani"] = {
	"Han",
	"logography",
	characters = (
		"一-鿿" ..
		"㐀-䶿" .. -- ExtA
		"𠀀-𪛟" .. -- ExtB
		"𪜀-𮹟" .. -- ExtC-F & I
		"𰀀-𲎯" .. -- ExtG-H
		"﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩" ..
		"⼀-⿟" .. -- Kangxi Radicals
		"⺀-⻿" .. -- Radicals Supplement
		" -〿" .. -- CJK Symbols and Punctuation
		"𖿢𖿣𖿰𖿱" .. -- Ideographic Symbols and Punctuation
		"㇀-㇮" .. -- Strokes
		"㋿㍻-㍿" .. -- 組文字
		"㈠-㉇㊀-㊰㋀-㋋㍘-㍰㏠-㏾🈐-🈒🈔-🈻🉀-🉈🉐🉑🉠-🉥" ..
		-- Saved as bytes to stop normalization on save.
		"\239\164\128-\239\171\191" .. -- Compatibility Ideographs
		"\240\175\160\128-\240\175\168\159" -- Compatibility Ideographs Supplement
	),
	varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
	spaces = false,
}

	m["Hans"] = {
		"Simplified Han",
		m["Hani"][2],
		characters = m["Hani"].characters,
		spaces = m["Hani"].spaces,
		parent = "Hani",
	}

	m["Hant"] = {
		"Traditional Han",
		m["Hani"][2],
		characters = m["Hani"].characters,
		spaces = m["Hani"].spaces,
		parent = "Hani",
	}

m["Hano"] = {
	"Hanunoo",
	"abugida",
	characters = "ᜠ-᜴",
}

m["Hatr"] = {
	"Hatran",
	"abjad",
	characters = "𐣠-𐣿",
	direction = "rtl",
}

m["Hebr"] = {
	"Hebrew",
	"abjad",	-- more precisely, impure abjad
	characters = u(0x0590) .. "-" .. u(0x05FF) .. u(0xFB1D) .. "-" .. u(0xFB4F),
	direction = "rtl",
}

m["Hira"] = {
	"Hiragana",
	"syllabary",
	characters = "ぁ-ゟ𛀁-𛄞𛅐𛅑𛅒🈀",
	varieties = {"Hentaigana"},
	spaces = false,
}

m["Hluw"] = {
	"Anatolian Hieroglyphs",
	"logography, syllabary",
	characters = "𔐀-𔙆",
	wikipedia_article = "Anatolian hieroglyphs",
}

m["Hmng"] = {
	"Pahawh Hmong",
	"semisyllabary",
	aliases = {"Hmong"},
	characters = "𖬀-𖮏",
}

m["Hmnp"] = {
	"Nyiakeng Puachue Hmong",
	"alphabet",
	characters = "𞄀‎-𞅏",
}

m["Hung"] = {
	"Old Hungarian",
	"alphabet",
	aliases = {"Hungarian runic"},
	characters = "𐲀-𐲲",
	capitalized = true,
	direction = "rtl",
}

m["Ibrn"] = {
	"Iberian",
	"semisyllabary",
}

m["Imag"] = {
	-- To be used to avoid any formatting or link processing
	"Image-rendered",
	-- This should not have any characters listed
	translit = false,
	character_category = false,
}

m["Inds"] = {
	"Indus",
	aliases = {"Harappan", "Indus Valley"},
}

m["Ipach"] = {
	"International Phonetic Alphabet",
	aliases = {"IPA"},
}

m["Ital"] = {
	"Old Italic",
	"alphabet",
	characters = "𐌀-𐌯",
}

m["Java"] = {
	"Javanese",
	"abugida",
	characters = "ꦀ-꧟",
}

m["Jurc"] = {
	"Jurchen",
	spaces = false,
}

m["Kali"] = {
	"Kayah Li",
	"abugida",
	characters = "꤀-꤯",
}

m["Kana"] = {
	"Katakana",
	"syllabary",
	characters = "゠-ヿㇰ-ㇿ㌀-㍗ヲ-゚𛀀𛅤𛅥𛅦𛅧",
	spaces = false,
}

m["Kawi"] = {
	"Kawi",
	"abugida",
	characters = "𑼀-𑽙",
}

m["Khar"] = {
	"Kharoshthi",
	"abugida",
	characters = "𐨀-𐩘",
	direction = "rtl",
}

m["Khmr"] = {
	"Khmer",
	"abugida",
	characters = "ក-៝០-៩៰-៹᧠-᧿",
	spaces = false,
	normalizationFixes = {
		from = {"ឣ", "ឤ"},
		to = {"អ", "អា"}
	},
}

m["Khoj"] = {
	"Khojki",
	"abugida",
	characters = "𑈀-𑈾",
	normalizationFixes = {
		from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
		to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
	},
}

m["Kitl"] = {
	"Khitan Large",
	"logography, syllabary",
	spaces = false,
}

m["Kits"] = {
	"Khitan Small",
	"logography, syllabary",
	characters = "𘬀-𘳕"..u(0x16FE4),
	spaces = false,
}

m["Knda"] = {
	"Kannada",
	"abugida",
	characters = "ಀ-ೲ",
	normalizationFixes = {
		from = {"ಉಾ", "ಋಾ", "ಒೌ"},
		to = {"ಊ", "ೠ", "ಔ"}
	},
}

m["Kpel"] = {
	"Kpelle",
	"syllabary",
	-- Not in Unicode
}

m["Kthi"] = {
	"Kaithi",
	"abugida",
	characters = "𑂀-𑃍",
}

m["Lana"] = {
	"Tai Tham",
	"abugida",
	aliases = {"Tham", "Tua Mueang", "Lanna"},
	characters = "ᨠ-ᩞ᩠-᩿᩼᪀-᪉᪐-᪙᪠-᪭",
	spaces = false,
}

m["Laoo"] = {
	"Lao",
	"abugida",
	characters = "ກຂຄຆ-ຊຌ-ຣລວ-ຽເ-ໄໆ່-໎໐-໙ໜ-ໟ",
	spaces = false,
}

m["Latn"] = {
	"Latin",
	"alphabet",
	aliases = {"Roman"},
	characters = "A-Za-zªºÀ-ÖØ-öø-ɏḀ-ỿ",
	varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
	capitalized = true,
	translit = false,
}

	m["Latf"] = {
		"Fraktur",
		m["Latn"][2],
		characters = m["Latn"].characters,
		otherNames = {"Blackletter"}, -- Blackletter is actually the parent "script"
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}
	
	m["Latg"] = {
		"Gaelic",
		m["Latn"][2],
		characters = m["Latn"].characters,
		otherNames = {"Irish"},
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

	m["Latnx"] = {
		"Latin",
		m["Latn"][2],
		characters = m["Latn"].characters .. "ɐ-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꟿꬰ-ꭚꭜ-ꭤꭦ-ꭩff-stA-Za-z𐞀-𐞅𐞇-𐞰𐞲-𐞺𝼀-𝼞𝼥-𝼪",
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

	m["pjt-Latn"] = {
		"Latin",
		m["Latn"][2],
		characters = m["Latn"].characters,
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

m["Leke"] = {
	"Leke",
	"abugida",
}

m["Lepc"] = {
	"Lepcha",
	"abugida",
	characters = "ᰀ-ᱏ",
}

m["Limb"] = {
	"Limbu",
	"abugida",
	characters = "ᤀ-᥏",
}

m["Lina"] = {
	"Linear A",
	characters = "𐘀-𐝧",
}

m["Linb"] = {
	"Linear B",
	characters = "𐀀-𐃺",
}

m["Lisu"] = {
	"Lisu",
	"alphabet",
	aliases = {"Fraser"},
	characters = "ꓐ-꓿𑾰",
	normalizationFixes = {
		from = {"['’]", "[.ꓸ][.ꓸ]", "[.ꓸ][,ꓹ]"},
		to = {"ʼ", "ꓺ", "ꓻ"}
	},
}

m["Loma"] = {
	"Loma",
	"syllabary",
	-- Not in Unicode
}

m["Lyci"] = {
	"Lycian",
	"alphabet",
	characters = "𐊀-𐊜",
}

m["Lydi"] = {
	"Lydian",
	"alphabet",
	characters = "𐤠-𐤿",
	direction = "rtl",
}

m["Mahj"] = {
	"Mahajani",
	"abugida",
	characters = "𑅐-𑅶",
}

m["Maka"] = {
	"Lontara",
	"abugida",
	aliases = {"Makasar"},
	characters = "𑻠-𑻸",
}

m["Mand"] = {
	"Mandaic",
	aliases = {"Mandaean"},
	characters = "ࡀ-࡞",
	direction = "rtl",
}

m["Mani"] = {
	"Manichaean",
	"abjad",
	characters = "𐫀-𐫶",
	direction = "rtl",
}

m["Marc"] = {
	"Marchen",
	"abugida",
	characters = "𑱰-𑲶",
}

m["Maya"] = {
	"Maya",
	aliases = {"Maya hieroglyphic", "Mayan", "Mayan hieroglyphic"},
	characters = "𝋠-𝋳",
}

m["Medf"] = {
	"Medefaidrin",
	aliases = {"Oberi Okaime", "Oberi Ɔkaimɛ"},
	characters = "𖹀-𖺚",
	capitalized = true,
}

m["Mend"] = {
	"Mende",
	aliases = {"Mende Kikakui"},
	characters = "𞠀-𞣖",
	direction = "rtl",
}

m["Merc"] = {
	"Meroitic cursive",
	"abugida",
	characters = "𐦠-𐦿",
	direction = "rtl",
}

m["Mero"] = {
	"Meroitic hieroglyphic",
	"abugida",
	characters = "𐦀-𐦟",
	direction = "rtl",
}

m["Mlym"] = {
	"Malayalam",
	"abugida",
	characters = "ഀ-ൿ",
	normalizationFixes = {
		from = {"ഇൗ", "ഉൗ", "എെ", "ഒാ", "ഒൗ", "ക്‍", "ണ്‍", "ന്‍റ", "ന്‍", "മ്‍", "യ്‍", "ര്‍", "ല്‍", "ള്‍", "ഴ്‍", "െെ", "ൻ്റ"},
		to = {"ഈ", "ഊ", "ഐ", "ഓ", "ഔ", "ൿ", "ൺ", "ൻറ", "ൻ", "ൔ", "ൕ", "ർ", "ൽ", "ൾ", "ൖ", "ൈ", "ന്റ"}
	},
}

m["Modi"] = {
	"Modi",
	"abugida",
	characters = "𑘀-𑙙",
	normalizationFixes = {
		from = {"𑘀𑘹", "𑘀𑘺", "𑘁𑘹", "𑘁𑘺"},
		to = {"𑘊", "𑘋", "𑘌", "𑘍"}
	},
}

m["Mong"] = {
	"Mongolian",
	"alphabet",
	aliases = {"Mongol bichig", "Hudum Mongol bichig"},
	characters = "᠀-᠅᠊-᠙ᠠ-ᡂᡸᢀ-ᢗᢦᢩ‌‍ 𑙠-𑙨",
	direction = "down",
}

	m["mnc-Mong"] = {
		"Manchu",
		m["Mong"][2],
		characters = "᠁᠄᠈-᠏ᠠᠣᠨ-ᠪᠮ-ᠰᠴ-ᠸᠺᡝᡟ-ᡡᡤ-ᡩᡬ-ᡱᡳ-ᡷᢀ-ᢈᢏᢚ-ᢥᢨᢪ‌‍ ",
		direction = "down",
		parent = "Mong",
	}
	
	m["sjo-Mong"] = {
		"Xibe",
		m["Mong"][2],
		aliases = {"Sibe"},
		characters = "᠄᠇᠊-᠏ᠠᠣᠨᠪᠮ-ᠰᠴ-ᠸᠺᡝ-ᡲ‌‍ ",
		direction = "down",
		parent = "mnc-Mong",
	}
	
	m["xwo-Mong"] = {
		"Clear Script",
		m["Mong"][2],
		aliases = {"Todo", "Todo bichig"},
		characters = "᠀᠁᠄-᠆᠊-ᠠᠨᠯ-ᠱᠴᠷᠸᠺᠻᡀᡃ-ᡜᢀ-ᢇᢉ-ᢏᢔᢖ-ᢙᢧ‌‍ 𑙩-𑙬",
		direction = "down",
		parent = "Mong",
	}

m["Moon"] = {
	"Moon",
	"alphabet",
	aliases = {"Moon System of Embossed Reading", "Moon type", "Moon writing", "Moon alphabet", "Moon code"},
	-- Not in Unicode
}

m["Morse"] = {
	"Morse code",
}

m["Mroo"] = {
	"Mro",
	characters = "𖩀-𖩯",
}

m["Mtei"] = {
	"Meitei Mayek",
	"abugida",
	aliases = {"Meetei Mayek", "Manipuri"},
	characters = "ꯀ-꯹ꫠ-꫶",
}

m["Mult"] = {
	"Multani",
	"abugida",
	characters = "𑊀-𑊩",
}

m["Music"] = {
	"Musical notation",
	"pictography",
	characters = "𝄀-𝇨",
	translit = false,
}

m["Mymr"] = {
	"Burmese",
	"abugida",
	aliases = {"Myanmar"},
	characters = "က-႟ꩠ-ꩿꧠ-ꧾ",
	spaces = false,
}

m["Nagm"] = {
	"Nag Mundari",
	"alphabet",
	characters = "𞓐-𞓹",
}

m["Nand"] = {
	"Nandinagari",
	"abugida",
	characters = "𑦠-𑧤",
}

m["Narb"] = {
	"Old North Arabian",
	"abjad",
	characters = "𐪀-𐪟",
	direction = "rtl",
}

m["Nbat"] = {
	"Nabataean",
	"abjad",
	aliases = {"Nabatean"},
	characters = "𐢀-𐢯",
	direction = "rtl",
}

m["Newa"] = {
	"Newa",
	"abugida",
	aliases = {"Newar", "Newari", "Prachalit Nepal"},
	characters = "𑐀-𑑡",
}

m["Nkdb"] = {
	"Dongba",
	"pictography",
	aliases = {"Naxi Dongba", "Nakhi Dongba", "Tomba", "Tompa", "Mo-so"},
	spaces = false,
	-- Not in Unicode
}

m["Nkgb"] = {
	"Geba",
	"syllabary",
	aliases = {"Nakhi Geba", "Naxi Geba"},
	spaces = false,
	-- Not in Unicode
}

m["Nkoo"] = {
	"N'Ko",
	"alphabet",
	characters = "߀-߿",
	direction = "rtl",
}

m["None"] = {
	"Unspecified", -- renders as 'unspecified script'
	-- This should not have any characters listed
	translit = false,
	character_category = false,
}

m["Nshu"] = {
	"Nüshu",
	"syllabary",
	aliases = {"Nushu"},
	characters = "𖿡𛅰-𛋻",
	spaces = false,
}

m["Ogam"] = {
	"Ogham",
	characters = " -᚜",
}

m["Olck"] = {
	"Ol Chiki",
	characters = "᱐-᱿",
}

m["Orkh"] = {
	"Orkhon runes",
	aliases = {"Old Turkic"},
	characters = "𐰀-𐱈",
	direction = "rtl",
}

m["Orya"] = {
	"Oriya",
	"abugida",
	aliases = {"Odia"},
	characters = "ଁ-୷",
	normalizationFixes = {
		from = {"ଅା", "ଏୗ", "ଓୗ"},
		to = {"ଆ", "ଐ", "ଔ"}
	},
}

m["Osge"] = {
	"Osage",
	characters = "𐒰-𐓻",
	capitalized = true,
}

m["Osma"] = {
	"Osmanya",
	characters = "𐒀-𐒩",
}

m["Ougr"] = {
	"Old Uyghur",
	"abjad, alphabet",
	characters = "𐽰-𐾉",
	direction = "down",
}

m["Palm"] = {
	"Palmyrene",
	characters = "𐡠-𐡿",
	direction = "rtl",
}

m["Pauc"] = {
	"Pau Cin Hau",
	characters = "𑫀-𑫸",
}

m["Perm"] = {
	"Old Permic",
	characters = "𐍐-𐍺",
}

m["Phag"] = {
	"Phags-pa",
	"abugida",
	characters = "᠂᠃᠅‌‍ 。ꡀ-꡷",
	direction = "down",
}

m["Phli"] = {
	"Inscriptional Pahlavi",
	"abjad",
	characters = "𐭠-𐭿",
	direction = "rtl",
}

m["Phlp"] = {
	"Psalter Pahlavi",
	"abjad",
	characters = "𐮀-𐮯",
	direction = "rtl",
}

m["Phlv"] = {
	"Book Pahlavi",
	"abjad",
	direction = "rtl",
	-- Not in Unicode
}

m["Phnx"] = {
	"Phoenician",
	"abjad",
	characters = "𐤀-𐤟",
	direction = "rtl",
}

m["Plrd"] = {
	"Pollard",
	"abugida",
	aliases = {"Miao"},
	characters = "𖼀-𖾟",
}

m["Prti"] = {
	"Inscriptional Parthian",
	characters = "𐭀-𐭟",
	direction = "rtl",
}

m["Ranj"] = {
	"Ranjana",
	"abugida",
	-- Not in Unicode
}

m["Rjng"] = {
	"Rejang",
	"abugida",
	characters = "ꤰ-꥟",
}

m["Rohg"] = {
	"Hanifi Rohingya",
	"alphabet",
	characters = "𐴀-𐴹",
	direction = "rtl",
}

m["Roro"] = {
	"Rongorongo",
	-- Not in Unicode
}

m["Rumin"] = {
	"Rumi numerals",
	characters = "𐹠-𐹾",
	character_category = "Rumi numerals",
}

m["Runr"] = {
	"Runic",
	"alphabet",
	characters = "ᚠ-ᛰ",
}

m["Samr"] = {
	"Samaritan",
	"abjad",
	characters = "ࠀ-࠾",
	direction = "rtl",
}

m["Sarb"] = {
	"Old South Arabian",
	"abjad",
	characters = "𐩠-𐩿",
	direction = "rtl",
}

m["Saur"] = {
	"Saurashtra",
	"abugida",
	characters = "ꢀ-꣙",
}

m["Semap"] = {
	"flag semaphore",
	"pictography",
}

m["Sgnw"] = {
	"SignWriting",
	"pictography",
	characters = "𝠀-𝪯",
	translit = false,
}

m["Shaw"] = {
	"Shavian",
	characters = "𐑐-𐑿",
}

m["Shrd"] = {
	"Sharada",
	"abugida",
	characters = "𑆀-𑇙",
}

m["Shui"] = {
	"Sui",
	"logography",
	spaces = false,
	-- Not in Unicode
}

m["Sidd"] = {
	"Siddham",
	"abugida",
	characters = "𑖀-𑗝",
}

m["Sind"] = {
	"Khudawadi",
	"abugida",
	characters = "𑊰-𑋹",
	normalizationFixes = {
		from = {"𑊰𑋠", "𑊰𑋥", "𑊰𑋦", "𑊰𑋧", "𑊰𑋨"},
		to = {"𑊱", "𑊶", "𑊷", "𑊸", "𑊹"}
	},
}

m["Sinh"] = {
	"Sinhalese",
	"abugida",
	aliases = {"Sinhala"},
	characters = "ං-෴",
	normalizationFixes = {
		from = {"අා", "අැ", "අෑ", "උෟ", "ඍෘ", "ඏෟ", "එ්", "එෙ", "ඔෟ", "ෘෘ"},
		to = {"ආ", "ඇ", "ඈ", "ඌ", "ඎ", "ඐ", "ඒ", "ඓ", "ඖ", "ෲ"}
	},
}

m["Sogd"] = {
	"Sogdian",
	"abjad",
	characters = "𐼰-𐽙",
	direction = "rtl",
}

m["Sogo"] = {
	"Old Sogdian",
	"abjad",
	characters = "𐼀-𐼧",
	direction = "rtl",
}

m["Sora"] = {
	"Sorang Sompeng",
	aliases = {"Sora Sompeng"},
	characters = "𑃐-𑃹",
}

m["Soyo"] = {
	"Soyombo",
	"abugida",
	characters = "𑩐-𑪢",
}

m["Sund"] = {
	"Sundanese",
	"abugida",
	characters = "ᮀ-ᮿ",
}

m["Sylo"] = {
	"Syloti Nagri",
	"abugida",
	aliases = {"Sylheti Nagari"},
	characters = "ꠀ-꠫",
}

m["Syrc"] = {
	"Syriac",
	"abjad",	-- more precisely, impure abjad
	characters = "܀-ݏ"..u(0x0860).."-"..u(0x086A),
	direction = "rtl",
}

-- Syre, Syrj, Syrn are apparently subsumed into Syrc; discuss if this causes issues

m["Tagb"] = {
	"Tagbanwa",
	"abugida",
	characters = "ᝠ-ᝳ",
}

m["Takr"] = {
	"Takri",
	"abugida",
	characters = "𑚀-𑛉",
	normalizationFixes = {
		from = {"𑚀𑚭", "𑚀𑚴", "𑚀𑚵", "𑚆𑚲"},
		to = {"𑚁", "𑚈", "𑚉", "𑚇"}
	},
}

m["Tale"] = {
	"Tai Nüa",
	"abugida",
	aliases = {"Tai Nuea", "New Tai Nüa", "New Tai Nuea", "Dehong Dai", "Tai Dehong", "Tai Le"},
	characters = "ᥐ-ᥭᥰ-ᥴ",
	spaces = false,
}

m["Talu"] = {
	"New Tai Lue",
	"abugida",
	characters = "ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟",
	spaces = false,
}

m["Taml"] = {
	"တမီးလ်",
	"abugida",
	characters = "ஂ-௺𑿀-𑿿",
	normalizationFixes = {
		from = {"அூ", "ஸ்ரீ"},
		to = {"ஆ", "ஶ்ரீ"}
	},
}

m["Tang"] = {
	"Tangut",
	"logography, syllabary",
	characters = "𖿠𗀀-𘫿𘴀-𘴈",
	spaces = false,
}

m["Tavt"] = {
	"Tai Viet",
	"abugida",
	characters = "ꪀ-ꫂꫛ-꫟",
	spaces = false,
}

m["Telu"] = {
	"Telugu",
	"abugida",
	characters = "ఀ-౿",
	normalizationFixes = {
		from = {"ఒౌ", "ఒౕ", "ిౕ", "ెౕ", "ొౕ"},
		to = {"ఔ", "ఓ", "ీ", "ే", "ో"}
	},
}

m["Teng"] = {
	"Tengwar",
}

m["Tfng"] = {
	"Tifinagh",
	"abjad, alphabet",
	characters = "ⴰ-⵿",
	otherNames = {"Libyco-Berber", "Berber"}, -- per Wikipedia, Libyco-Berber is the parent
}

m["Tglg"] = {
	"Baybayin",
	"abugida",
	aliases = {"Tagalog"},
	characters = "ᜀ-᜔",
}

m["Thaa"] = {
	"Thaana",
	"abugida",
	characters = "ހ-ޱ",
	direction = "rtl",
}

m["Thai"] = {
	"Thai",
	"abugida",
	characters = "ก-ฺเ-๛",
	spaces = false,
}

m["Tibt"] = {
	"Tibetan",
	"abugida",
	characters = "ༀ-࿚",
	normalizationFixes = {
		combiningClasses = {["༹"] = 1},
		from = {"ཷ", "ཹ"},
		to = {"ྲཱྀ", "ླཱྀ"}
	},
}

	m["sit-tam-Tibt"] = {
		"Tamyig",
		m["Tibt"][2],
		characters = m["Tibt"].characters,
		parent = "Tibt",
		normalizationFixes = m["Tibt"].normalizationFixes,
	}

	m["xzh-Tibt"] = {
		"Zhang-Zhung",
		m["Tibt"][2],
		characters = m["Tibt"].characters,
		parent = "Tibt",
		normalizationFixes = m["Tibt"].normalizationFixes,
	}

m["Tirh"] = {
	"Tirhuta",
	"abugida",
	characters = "𑒀-𑓙",
	normalizationFixes = {
		from = {"𑒁𑒰", "𑒋𑒺", "𑒍𑒺", "𑒪𑒵", "𑒪𑒶"},
		to = {"𑒂", "𑒌", "𑒎", "𑒉", "𑒊"}
	},
}

m["Tnsa"] = {
	"Tangsa",
	"alphabet",
	characters = "𖩰-𖫉",
}

m["Toto"] = {
	"Toto",
	"abugida",
	characters = "𞊐-𞊮",
}

m["Ugar"] = {
	"Ugaritic",
	"abjad",
	characters = "𐎀-𐎟",
}

m["Vaii"] = {
	"Vai",
	"syllabary",
	characters = "ꔀ-ꘫ",
}

m["Visp"] = {
	"Visible Speech",
	"alphabet",
	-- Not in Unicode
}

m["Vith"] = {
	"Vithkuqi",
	"alphabet",
	characters = "𐕰-𐖼",
	capitalized = true,
}

m["Wara"] = {
	"Varang Kshiti",
	aliases = {"Warang Citi"},
	characters = "𑢠-𑣿",
	capitalized = true,
}

m["Wcho"] = {
	"Wancho",
	"alphabet",
	characters = "𞋀-𞋿",
}

m["Wole"] = {
	"Woleai",
	"syllabary",
	-- Not in Unicode
}

m["Xpeo"] = {
	"Old Persian",
	characters = "𐎠-𐏕",
}

m["Xsux"] = {
	"Cuneiform",
	aliases = {"Sumero-Akkadian Cuneiform"},
	characters = "𒀀-𒎙𒐀-𒑳",
}

m["Yezi"] = {
	"Yezidi",
	"alphabet",
	characters = "𐺀-𐺱",
	direction = "rtl",
}

m["Yiii"] = {
	"Yi",
	"syllabary",
	characters = "ꀀ-꓆",
}

m["Zanb"] = {
	"Zanabazar Square",
	characters = u(0x11A00).."-"..u(0x11A47),
}

m["Zmth"] = {
	"mathematical notation",
	characters = "ℵ∀-⋿⟀-⟯⦀-⫿𝐀-𝟿",
	translit = false,
	character_category = "Mathematical notation symbols", -- ?
}

m["Zsym"] = {
	"symbol",
	"pictography",
	characters = "─-➿←-⇿⌀-⏿⬀-⯾🀀-🃵🌀-🩭",
	translit = false,
	character_category = false, -- none
}

m["Zyyy"] = {
	"undetermined",
	-- This should not have any characters listed, probably
	translit = false,
	character_category = false, -- none
}

m["Zzzz"] = {
	"uncoded",
	-- This should not have any characters listed
	translit = false,
	character_category = false, -- none
}

-- These should be defined after the scripts they are composed of.

m["Hrkt"] = { -- TODO: add hentaigana
	"Kana",
	"syllabary",
	aliases = {"Japanese syllabaries"},
	characters = m["Hira"].characters .. m["Kana"].characters,
	spaces = false,
}

m["Jpan"] = {
	"Japanese",
	"logography, syllabary",
	characters = m["Hrkt"].characters .. m["Hani"].characters .. m["Latnx"].characters,
	spaces = false,
	sort_by_scraping = true,
}

m["Kore"] = {
	"Korean",
	"logography, syllabary",
	characters = m["Hang"].characters .. m["Hani"].characters,
}

return m