Huh? What does it do?
MCPatcher had a feature called Custom Item Textures(or CIT for short) which was later adopted by Optifine.
Custom Item Textures allowed resourcepacks to replace the appearance of items when they met certain conditions.
CIT Resewn does exactly that but as a standalone Fabric mod which does not require MCPatcher nor Optifine!
On top of that, CIT Resewn aims to build upon the concept of CITs by expanding the available types and conditions.
How is it different than MCPatcher/Optifine's CIT?
CIT Resewn is intended to be fully backwards compatible with the old Optifine/MCPatcher packs. Though there are some key differences.
First, the numeric id system was removed since the Flattening. Packs utilizing the so called "magic numbers" instead of the new text ids will not work.
Second, Optifine and old minecraft versions have a bug which allows resourcepacks to put files in malformatted(or "broken") paths.
These are paths that contain "Non (lower cased) a-z, 0-9, dots, underscores and dashes" characters within either the file name or its parent directories. In the case that you must use such a broken pack, there is a compromise set up which is still highly experimental and not recommended. You can go to CIT Resewn's settings and allow broken paths. (I'm serious, this is not recommended at all)
Lastly, to ensure compatibility with foreign packs, CITs will be loaded from .properties files under:
Does CIT Resewn support Optifine/Sodium?
While CIT Resewn is designed to work without any performance mod needed, I will try my best to ensure it is compatible with Sodium.
With all that said, there will not be support for Optifine at all.
There were also discussions around Sodium alternatives such as Canvas.
My official statement on compatibility with these mods is "if it works it works" unless I say otherwise.
What about Forge?
Forge is being kinda doodoo recently and Fabric's Mixins is what allows the mod to inject cits into vanilla so smoothly.
Do not ask for a forge port or I'll break your elbows.
If a version says it's for 1.x, it means it is aimed to work on all of 1.x's minor versions but specifically recommended for its listed minor version.
Well not anymore! Thanks a lot mojank ._.