How can I provide a prebuilt tree-sitter grammar package that works on multiple Atom versions?

I’m developing a language package that uses a tree-sitter grammar. This grammar lives in its own npm package, and is pre-built (using “prebuild”) in order to avoid users having to install development tools (which would be a big no-no for my users).

I’d like my language package to work on multiple Atom versions, let’s say for example 1.37.0 and 1.38.2.

However, the tree-sitter runtime versions included in these Atom releases seem to be incompatible with one another. A grammar prebuilt with the older tree-sitter crashes the newer Atom, while a grammar prebuilt with the newer tree-sitter can not be loaded in the older Atom.

Does anyone have a solution to this conundrum?

Is tree-sitter’s ABI just not stable enough yet? Is there a documented Atom ABI stability policy?

Is the only solution really to limit my package’s availibility to the most recent Atom release and disregard older ones?

I’d be grateful for any advice.