Metaprogramming for Java with APT: @Reflective, Immutable interface...