Replacing models and other classes to make mods may be the "right" way to do things from a programming architecture perspective, but it's absolutely terrible for modding. I feel like people aren't thinking this through *at all*.
So you replaced one of the default models with your own, all fine and good, right?
Except now your mod is completely incompatible with any other mod that wants to alter anything in that model as well.
If you instead patched the one or two fields or methods you're interested in, unless other mods directly interfered with those exact fields or methods, it'd be compatible.
Doing everything the "right" way is going to rapidly result in mod compatibility going into the toilet, all in pursuit of "clean" code, which matters exactly ZEEEERRRRROOOOO to mod users.