### Godot version

4.1 stable

### System information

Mac OS 13.4.1 - Macbook M1 Max 32c

### Issue description

I want to develop standalone apps for the Oculus Quest 2. I use the Mobile+ setting and OpenXR. A lot of functionality is working properly. However, I need direct access to events generated by the buttons and joysticks on the touch controllers. This is accomplished by the XR action map editor. However, potentially due to the lack of support for OpenXR on the MacOS this map editor is not enabled when creating an OpenXR project. Adding actions in code or manually adding "openxr_action_map.tres" to the project yield errors due to unknown references to OpenXRAction, OpenXRInteractionProfile and OpenXRIPBinding.

I really want to help to fix this. If there is anything I could do to enable OpenXR action maps in projects on systems without native OpenXR support. I'd love to help.

Kind regards,
Eelco 

### Steps to reproduce

1. Enable OpenXR in the project settings -> OpenXR Action Map should be a tab next to the tab "Shader Editor"
2. Importing "openxr_action_map.tres" in the project and double clicking it in the resource pane should yield multiple errors.

### Minimal reproduction project

Just an empty project -> Add OpenXR support. (see: https://docs.godotengine.org/en/stable/tutorials/xr/xr_action_map.html)
ERR_FAIL_NULL_V(supported_swapchain_formats, false);
	for (uint32_t i = 0; i < num_swapchain_formats; i++) {
		if (supported_swapchain_formats[i] == p_swapchain_format) {
			return true;
		}
	}
	return false;
}
bool OpenXRAPI::create_swapchains() {
	ERR_FAIL_NULL_V(graphics_extension, false);
	ERR_FAIL_COND_V(session == XR_NULL_HANDLE, false);
	/*
		TODO: We need to improve on this, for now we're taking our old approach of creating our main swapchains and substituting
		those for the ones Godot normally creates.
		This however means we can only use swapchains for our main XR view.
		It would have been nicer if we could override the swapchain creation in Godot with ours but we have a timing issue here.
		We can't create XR swapchains until after our XR session is fully instantiated, yet Godot creates its swapchain much earlier.
		Also Godot only creates a swapchain for the main output.
		OpenXR will require us to create swapchains as the render target for additional viewports if we want to use the layer system
		to optimize text rendering and background rendering as OpenXR may choose to re-use the results for reprojection while we're
		already rendering the next frame.
		Finally an area we need to expand upon is that Foveated rendering is only enabled for the swap chain we create,
		as we render 3D content into internal buffers that are copied into the swapchain, we do now have (basic) VRS support