Improve `engine` API documentation

This is the PR for #80, not ready for merge yet,  created for inspection.