1. Complex arguments passing by file
2. Variant-aware code generation strategy
3. Dealing with classes from dependencies
4. Beyond Annotation Processor - process all other Kotlin Symbols
5. Stubbing the generated code to improve user experience
6. Working with pipelined multiple processors