docs: function authenticated (...args) {
    if (args.length === 3 && typeof args[0].constructor === 'function') {
      Metadata.putMethodMeta(args[0], args[1], '@authenticated', 'config', Object.create(null));
    } else if (args.length === 1 && typeof args[0] === 'function') {
      // handle @authenticated at the class-level without arguments
      Metadata.putClassMeta(args[0].prototype, '@authenticated', 'config', Object.create(null));
    } else {
      const config = args[0] ? args[0] : Object.create(null);
      return function (target, key) {
        if (key === undefined) {
          Metadata.putClassMeta(target.prototype, '@authenticated', 'config', config);
        } else {
          Metadata.putMethodMeta(target, key, '@authenticated', 'config', config);
        }
      };
    }
  }