Scala validation framework leveraging macros and specs2 matchers