Here you will find documentation on Hazel's internal systems, how they work and how to extend them as you might need them.
One of the goals of Hazel and it's developers is to make a versatile tool that is accessible and extendable to how a user might see it fit, in order to accomplish this we adhere to certain coding standards, to ensure that the code is readable and understandable to the user.