A language for describing and taking code katas