kapt is short for Kotlin annotation processor tool.
Why do I need it?
tl;dr; every time you use an annotation in a Kotlin file you need to use kapt.
E.g. @Parcelize in Pass custom objects via SafeArgs
Prerequisites
dependencies { kapt("groupId:artifactId:version") }
plugins { kotlin("kapt") version "1.5.31" }