Reading from the source code:

https://github.com/mozilla/pdf.js/blob/57d196e3497e77c81c19f852715ce79d9fb91492/src/display/annotation_layer.js#L2846

it appears to me it was not an intention to mark downloadManager as a required parameter in AnnotationLayerParameters:

https://github.com/mozilla/pdf.js/blob/57d196e3497e77c81c19f852715ce79d9fb91492/src/display/annotation_layer.js#L63

and AnnotationLayerBuilderOptions:

https://github.com/mozilla/pdf.js/blob/57d196e3497e77c81c19f852715ce79d9fb91492/web/annotation_layer_builder.js#L40

and it should be optional, similarly to accessibilityManager for example:

https://github.com/mozilla/pdf.js/blob/57d196e3497e77c81c19f852715ce79d9fb91492/web/text_layer_builder.js#L30

**Configuration:**
- PDF.js version: 2.11.174
- Is a browser extension: no

**What is the expected behavior? (add screenshot)**

`downloadManager` to be optional

**What went wrong? (add screenshot)**

`downloadManager` marked as required

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):

div,
    accessibilityManager,
    annotationCanvasMap,
    l10n,
    page,
    viewport,
  }) {
    this.div = div;
    this.#accessibilityManager = accessibilityManager;
    this.#annotationCanvasMap = annotationCanvasMap;
    this.l10n = l10n;
    this.page = page;
    this.viewport = viewport;
    this.zIndex = 0;
    if (
      typeof PDFJSDev !== "undefined" &&
      PDFJSDev.test("GENERIC && !TESTING")
    ) {
      this.l10n ||= NullL10n;
    }
    if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")) {
      
      Object.defineProperty(this, "showPopups", {
        value: async () => {
          for (const show of this.popupShow) {
            await show();
          }
        },
      });