/// <summary>
        /// This should only be called once from MapsyncLb.cs
        /// </summary>
        public UnityMapsyncLibNativeInterface(string mapId, string userId, string developerKey, bool isMappingMode)
        {
            UnityARSessionNativeInterface arkit = UnityARSessionNativeInterface.GetARSessionNativeInterface();
            IntPtr arSession = arkit.GetSession();

            if (arSession == IntPtr.Zero)
            {
                Debug.Log("ARKit session is not initialized");
                return;
            }

            _CreateMapsyncSession(arSession, mapId, userId, developerKey, isMappingMode);

            string unityCallbackGameObject          = "MapSession";
            string unityAssetLoadedCallbackFunction = "AssetReloaded";
            string unityStatusUpdatedCallback       = "StatusUpdated";
            string unityStorePlacementCallback      = "PlacementStored";

            _RegisterUnityCallbacks(unityCallbackGameObject, unityAssetLoadedCallbackFunction, unityStatusUpdatedCallback, unityStorePlacementCallback);
        }