Documentation must include rich doxygen comments that can be used to extract a nice API reference, a manual on how library works with many many examples.