docs: function getPropertyDescriptor(target, key, dsc) {
      const defaultDescriptor = { enumerable: true, configurable: true, writable: true };
      return (target instanceof Function) // static
          ? new KeyPropertyDescriptor().key(key).descriptor(dsc || Object.getOwnPropertyDescriptor(target, key) || defaultDescriptor) // static
          : new KeyPropertyDescriptor().key(key).descriptor(dsc || Reflect.getMetadata('design:descriptor', target, key) || defaultDescriptor); // instance
  }