Currently each component gets a Java interface written. It also gets an impl class that uses annotations like @ValueMapValue and @getter in place of writing the actual getter and setters. We do this for everything regardless of how basic the component is.
I've seen some blog posts that suggest you only create an interface and use the annotations like @ValueMapValue in it. This removes the need to create the impl class as well as unit tests.
What would be considered the recommended/best practice in this case?