Расскажи мне это на русском:

Right now, all of Caffeine's mods are using Yarn for name mappings. This is largely because it was the de-facto option (well, really the only viable option) for Fabric mods when Lithium and Phosphor were first published.

Since then, Mojang have released their own (official) mappings, and these have seen ever increasing adoption in the modding community. Notably, the Forge project is using them as their primary mappings since Minecraft 1.16.5+, and Quilt is considering them for default use (or at the very least will probably support them.)

There's also a few other notable benefits that come with switching to Mojang's mappings. Most of what's written here is taken more-or-less from Coderbot's write-up here, with some emphasis of my own added.

    Consistency and stability. While this is not intended to be a mark against the Yarn maintainers, the Yarn project is still a moving machine, and unfortunately much of what currently exists for Minecraft's rendering code is pretty poor. Mojang's mappings, while not particularly high-quality themselves, are relatively more stable and better documenting of render code.

    Day-one availability. Creating names in Yarn involves human beings de-obfuscating a new release of Minecraft. This takes time, and doubly so to produce high quality names. With Mojang's mappings, there's immediate availability with the release of a new version of Minecraft.

    We're not tied to any specific toolchain. While Loom (for Fabric modding) can be configured to use a variety of mappings, the only platform which really supports Yarn is Fabric itself. Using Mojang's official mappings means wider support and easier porting to other platforms.

However, this is not to say that Mojang's mappings are all good. There are some downsides and legitimate criticisms. I'll try to address some of the arguments that people have brought up to me.

    Mojang's mappings have a non-free license. Yes. The Mojang mappings are not distributed under a libre license like Yarn is. However, the general consensus is that they are safe for use in open-source projects and pose no risk. Even in the case of ambiguity, I think it's fairly clear that Mojang's intention with these mappings is to enable modders, rather than to use it as a weapon against us. In the event that Mojang does decide to revoke that good faith and start weaponizing it against us, well -- I wouldn't want to continue modding their game, anyways.

    Won't contributors to Yarn and Fabric no longer be able to contribute to Caffeine's mods? I don't really want to dig into this argument too much. The clean-room argument for Yarn doesn't really hold up in my opinion, and I don't think you could reasonably assert either for or against that the policy has been enforced, or that the project hasn't already been poisoned or otherwise compromised. For as toxic as some people paint the MCP/Mojang mappings to be, you would expect that the LGPL license of our mods would be just as much of an issue. Ultimately, the venn diagram between Yarn contributors and Caffeine contributors has had very minimal overlap, if any.

    Why not contribute to Yarn instead? This argument gets brought up a lot in the open-source space, and while it sometimes makes sense, this isn't one of those times. When the discussion is about switching software stacks, the counter argument should not be "well if you have issues with our software, you should fix it yourself." I'd like to spend my time on writing mods, not on tooling and mappings.

With all that said, there's a pretty clear case for us to move away from Yarn and to Mojang's mappings. However, doing this is not exactly straightforward, and a lot of somewhat tedious work is involved in migrating. As such, this issue exists as a call to help for those who are interested in helping us switch mapping sets in each of our projects. Right now, this call includes Hydrogen, Lithium, Phosphor, and Sodium.

If you are interested in helping and have time to contribute, feel free to let us know in this issue or on Discord. Alternatively, one can also just open a work-in-progress PR for a given project and let us know that way.