code: function(prop, prefix) {
          if (prop.isAbstract()) {
              throw 'An interface may not contain abstract definitions. ' + prefix + ' ' + prop.getName() + ' is abstract in interface ' + definition.__interface__.name + '.';
          }
          if (prop.isFinal()) {
              throw 'An interface may not contain final definitions. ' + prefix + ' ' + prop.getName() + ' is final in interface ' + definition.__interface__.name + '.';
          }
      }
docs: Properties and methods may ever be declared as abstract or final in an interface definition, because that wouldn't make any sense in this context.