pack.mcmeta лежит в корне пака. До 1.21.9 версия пишется одним числом в pack_format — например, для 1.20.1:
{
"pack": {
"pack_format": 15,
"description": "Мой пак"
}
}
С 1.21.9 вместо него пара min_format и max_format: с какой версии и до какой пак работает. Число — мажор формата; минор (дробная часть, как у 97.1) пишут парой [97, 1], а голое число в max_format значит «любой минор». Ресурспак для 26.3:
{
"pack": {
"min_format": 97,
"max_format": 97,
"description": "Мой пак"
}
}
Датапак для 26.3 — то же самое со своим номером:
{
"pack": {
"min_format": 121,
"max_format": 121,
"description": "Мой пак"
}
}
Пак, который должен работать и на старых версиях, пишет оба способа сразу: pack_format для старых и пару для новых. Между ними, с 1.20.2 по 1.21.8, был ещё supported_formats — список подходящих номеров. Если номер не совпадает с версией игры, пак горит красным в списке, но чаще всего работает; поменять номер в чужом паке можно в конвертере паков.