I always tell my clients - the difference between writing code and maintaining it, is the difference between raising your hands and keeping them raised indefinitely.
Few dependencies? Too much reinventing the wheel, delete all that code and add dependencies!
There is no perfect code, can always make different trade-offs and move things around.
Even magic stuff like `@attributes` is easily searchable.
Maintaining and cleaning up a mess someone left behind are two different things.