Compile time annotations that make Avro records easy to use in Scala