The best documentation is the engine source. If you haven’t done it, download the entire engine source, generate the engine solution, and open it up. You can always find an example of some other module doing what you’re trying to do and simply work backwards from that.