How can I fetch the complete main navigation menu via JSON:API?
I did not get it to run with JSON:API, there are several long-standing issues...

However you can get it to run if you additionally install the REST Menu Tree module.

Be aware that this has several direct and indirect dependencies:

It has a direct dependency on Menu Normalizer and according to this issue you need to then activate that endpoint for example with the REST UI module - which in turn will activate the core REST module.

Then in your site activate the endpoint via the Rest UI in /admin/config/services/rest.

Afterwards you might also want to allow everyone to GET this endpoint via /admin/people/permissions#module-rest

And finally you get a JSON array in /entity/menu/main/tree.
Or query a different menu via /entity/menu/{internal_menu_name}/tree.