There are no instructions for writing FindXXX.cmake files like FindZLIB.cmake because it’s easier to add some code to generate ZLIBConfig.cmake automatically.

Quote from CMake wiki:

If creating a Find* module for a library that already uses CMake as its build
system, please create a *Config.cmake instead, and submit it upstream. This
solution is much more robust.

CMake documentation

Examples on GitHub