{
  "schemaVersion": 1,
  "coreCommit": "65d76a28454ec82456e27245099bab86832a2b7d",
  "sdkVersion": "0.3.0-dev.65d76a28",
  "scriptApiVersion": "0.5-session",
  "scriptHostVersion": "0.1.0-dev.12.5",
  "mapAbiVersion": 1,
  "status": "development-snapshot-not-formal-release",
  "preferredScriptImport": "import { map } from 'sqsmap';",
  "queryConvention": "await",
  "platforms": {
    "sharedCore": "native-and-wasm",
    "desktop": "local-acceptance-records",
    "web": "main-thread-and-strict-worker-local-acceptance-records",
    "mobile": "mobile-GIS-application-and-iOS-script-host-not-connected-device-acceptance-pending",
    "androidNativeSdk": "Java-JNI-map-host-HTTP-WS-WSS-and-embedded-View-source-local-checks-Android-device-pending",
    "windowsMacOS": "external-validation-pending"
  },
  "inputs": [
    {
      "file": "packages/map-core/snapshot.json",
      "sha256": "04291a4122d4785dd055d5b72406cf3504ced85299baf9de50cd470efcbd9b78"
    },
    {
      "file": "site/public/sdk-files/web/development/api-index.json",
      "sha256": "fad0a0527ceae54c4f452108b05511cecc10b18fc2e77100ab27369dbd7cee21"
    },
    {
      "file": "site/public/sdk-files/native/v1/manifest.json",
      "sha256": "4cb5e3e49c300587c76b701b01cfb3219ade46038f649d26a794ac6564288029"
    },
    {
      "file": "assets/script-api/maplibre-mapping.json",
      "sha256": "7f50325c6893704892f778abda75c2e0386b1f7302ddff2f3a47a88cc079fa04"
    },
    {
      "file": "crates/sqs-script-contract/src/session_types.d.ts",
      "sha256": "85983deac82ad2aad9294e0521cc52e2a1ab4a9d241889b511373c2bb705b811"
    }
  ],
  "declarations": {
    "sdk": 385,
    "c": 41,
    "script": 233
  },
  "links": {
    "androidViewChinese": "/docs/manual/android-view",
    "androidViewEnglish": "/en/docs/manual/android-view",
    "sdk": "/sdk-files/web/development/api-index.json",
    "native": "/sdk-files/native/v1/manifest.json",
    "scriptChinese": "/script-files/gis.d.ts",
    "scriptWeb": "/script-files/gis.web.d.ts",
    "scriptDesktop": "/script-files/gis.desktop.d.ts",
    "scriptMobile": "/script-files/gis.mobile.d.ts",
    "english": "/sdk-files/web/development/script-index.en.json",
    "runtime": "/sdk/sqsmap-core/distribution.json"
  },
  "rows": [
    {
      "id": "camera",
      "canonical": [
        "jumpTo",
        "easeTo",
        "flyTo",
        "fitBounds",
        "project",
        "unproject"
      ],
      "sdk": [
        "jumpTo",
        "easeTo",
        "flyTo",
        "fitBounds",
        "project",
        "unproject"
      ],
      "registry": [
        "map.camera.read",
        "map.camera.write"
      ],
      "c": [
        "sqsm_map_camera_json"
      ],
      "guide": "camera-api",
      "status": "implemented-subset",
      "zh": "相机操作由共享核心计算；读操作用await，动画/投影的已实现参数和边界见指南。",
      "en": "The shared core computes camera operations. Await reads; consult the camera guides for supported animation/projection parameters and bounds.",
      "guides": {
        "zh": "/docs/manual/camera-api",
        "en": "/en/docs/manual/camera-api"
      }
    },
    {
      "id": "projection",
      "canonical": [
        "setProjection",
        "getProjection",
        "setPitch",
        "resetNorth",
        "resetNorthPitch"
      ],
      "sdk": [
        "setProjection",
        "getProjection",
        "setPitch",
        "resetNorth",
        "resetNorthPitch"
      ],
      "registry": [
        "map.camera.read",
        "map.camera.write"
      ],
      "c": [
        "sqsm_map_camera_json"
      ],
      "guide": "perspective-camera",
      "status": "implemented-subset",
      "zh": "俯视/倾斜、地球投影及地形是不同状态；2D/3D工具由使用方调用公开操作。",
      "en": "Top-down/pitched view, globe projection and terrain are separate states; caller-owned 2D/3D controls invoke public operations.",
      "guides": {
        "zh": "/docs/manual/perspective-camera",
        "en": "/en/docs/manual/perspective-camera"
      }
    },
    {
      "id": "sources",
      "canonical": [
        "addSource",
        "getSource",
        "removeSource"
      ],
      "sdk": [
        "addSource",
        "getSource",
        "removeSource",
        "TileSourceOptions",
        "TileSource",
        "TileSourceMetadata",
        "TileSourceState"
      ],
      "registry": [
        "map.source.read",
        "map.source.write"
      ],
      "c": [
        "sqsm_map_source_json"
      ],
      "guide": "source-api",
      "status": "implemented-subset",
      "zh": "共同GeoJSON、image/video/canvas、raster瓦片及vector MVT circle/line/fill/点symbol/平面透视fill-extrusion和source-layer查询已接通；DEM、完整矢量类型仍待实施。",
      "en": "Shared GeoJSON,image/video/canvas,raster tiles and vector MVT circle/line/fill/point-symbol/planar-perspective-fill-extrusion/source-layer queries are connected. DEM,remaining vector types remain pending.",
      "guides": {
        "zh": "/docs/manual/source-api",
        "en": "/en/docs/manual/source-api"
      }
    },
    {
      "id": "geojson",
      "canonical": [
        "getSource(id).setData",
        "getSource(id).updateData"
      ],
      "sdk": [
        "GeoJSONSource"
      ],
      "registry": [
        "map.source.write"
      ],
      "c": [
        "sqsm_map_source_json"
      ],
      "guide": "url-sources",
      "status": "implemented-subset",
      "zh": "setData/updateData采用MapLibre结构；稳定身份、更新与HTTP加载代次、事件和预算属于SqsMap明确契约。",
      "en": "setData/updateData follow MapLibre structures. Stable identities, HTTP generations, events and budgets follow the documented SqsMap contract.",
      "guides": {
        "zh": "/docs/manual/url-sources",
        "en": "/en/docs/manual/url-sources"
      }
    },
    {
      "id": "layers",
      "canonical": [
        "addLayer",
        "getLayer",
        "moveLayer",
        "removeLayer",
        "setPaintProperty",
        "setLayoutProperty",
        "setFilter",
        "setLayerZoomRange"
      ],
      "sdk": [
        "addLayer",
        "getLayer",
        "moveLayer",
        "removeLayer",
        "setPaintProperty",
        "setLayoutProperty",
        "setFilter",
        "setLayerZoomRange"
      ],
      "registry": [
        "map.layer.read",
        "map.layer.write"
      ],
      "c": [
        "sqsm_map_layer_json"
      ],
      "guide": "layer-api",
      "status": "implemented-subset",
      "zh": "共同业务图层清单与底图内部样式层不同；具体图层/paint/layout/表达式子集见各指南，未实现参数明确拒绝。",
      "en": "The shared business-layer list differs from internal basemap style layers. Consult guides for supported types, paint/layout and expressions; unsupported options reject explicitly.",
      "guides": {
        "zh": "/docs/manual/layer-api",
        "en": "/en/docs/manual/layer-api"
      }
    },
    {
      "id": "queries",
      "canonical": [
        "queryRenderedFeatures",
        "querySourceFeatures",
        "getFeatureState",
        "setFeatureState",
        "removeFeatureState"
      ],
      "sdk": [
        "queryRenderedFeatures",
        "querySourceFeatures",
        "getFeatureState",
        "setFeatureState",
        "removeFeatureState"
      ],
      "registry": [
        "map.layer.read",
        "map.source.read",
        "map.source.write"
      ],
      "c": [
        "sqsm_map_layer_json",
        "sqsm_map_source_json"
      ],
      "guide": "query-api",
      "status": "implemented-subset",
      "zh": "读取使用await；共同GeoJSON/MVT source-layer查询与独立要素状态已接通，实际图层/源身份及预算明确，不静默截断。",
      "en": "Reads use await. Shared GeoJSON/MVT source-layer queries and isolated feature state are connected with explicit layer/source identities and budgets; results never silently truncate.",
      "guides": {
        "zh": "/docs/manual/query-api",
        "en": "/en/docs/manual/query-api"
      }
    },
    {
      "id": "styles",
      "canonical": [
        "setStyle",
        "getStyle"
      ],
      "sdk": [
        "setStyle",
        "getStyle"
      ],
      "registry": [
        "map.setStyle"
      ],
      "c": [
        "sqsm_map_set_style_json",
        "sqsm_map_get_style_json"
      ],
      "guide": "style-api",
      "status": "implemented-subset",
      "zh": "样式采用version8结构；differences、加载/错误与可编辑子集见指南，完整Style Spec仍在实施。",
      "en": "Styles use version8 structures. Consult guides for diff behavior, loading/errors and editable subsets; complete Style Spec support remains in progress.",
      "guides": {
        "zh": "/docs/manual/style-api",
        "en": "/en/docs/manual/style-api"
      }
    },
    {
      "id": "images",
      "canonical": [
        "loadImage",
        "addImage",
        "updateImage",
        "removeImage",
        "getImage",
        "hasImage"
      ],
      "sdk": [
        "loadImage",
        "addImage",
        "updateImage",
        "removeImage",
        "getImage",
        "hasImage"
      ],
      "registry": [
        "map.image.load",
        "map.image.read",
        "map.image.write"
      ],
      "c": [
        "sqsm_map_image_json",
        "sqsm_map_resource_requests_json",
        "sqsm_map_resource_response"
      ],
      "guide": "image-resources",
      "status": "implemented-subset",
      "zh": "图标使用可复制RGBA与像素密度；不返回跨端DOM对象，受图标和atlas预算限制。",
      "en": "Icons use copied RGBA and pixel density; no cross-platform DOM object is returned. Icon and atlas budgets apply.",
      "guides": {
        "zh": "/docs/manual/image-resources",
        "en": "/en/docs/manual/image-resources"
      }
    },
    {
      "id": "image-source",
      "canonical": [
        "getSource(id).setCoordinates",
        "getSource(id).updateImage"
      ],
      "sdk": [
        "MediaSource",
        "ImageSourceUpdate"
      ],
      "registry": [
        "map.source.read",
        "map.source.write"
      ],
      "c": [
        "sqsm_map_source_json"
      ],
      "guide": "media-api",
      "status": "implemented-subset",
      "zh": "image URL与updateImage的新像素/可选四角原子提交；与同名图标updateImage按参数/源类型区分。",
      "en": "Image URLs/updateImage commit pixels and optional corners atomically; argument/source types distinguish the sprite method with the same name.",
      "guides": {
        "zh": "/docs/manual/media-api",
        "en": "/en/docs/manual/media-api"
      }
    },
    {
      "id": "video",
      "canonical": [
        "addSource(id,{type:\"video\",urls,coordinates})",
        "getSource(id).play",
        "getSource(id).pause"
      ],
      "sdk": [
        "MediaSourceOptions",
        "MediaSource",
        "MediaState"
      ],
      "registry": [
        "map.source.read",
        "map.source.write"
      ],
      "c": [
        "sqsm_map_source_json",
        "sqsm_map_resource_requests_json",
        "sqsm_map_resource_response"
      ],
      "guide": "media-api",
      "status": "implemented-subset",
      "zh": "共享普通MP4/H.264解码器、地图时钟与循环；DOM getVideo、其它格式/音频不属于当前承诺。",
      "en": "Shared ordinary MP4/H.264 decode, map clock and looping are connected. DOM getVideo, other codecs and audio are outside current support.",
      "guides": {
        "zh": "/docs/manual/media-api",
        "en": "/en/docs/manual/media-api"
      }
    },
    {
      "id": "events",
      "canonical": [
        "on",
        "off",
        "once"
      ],
      "sdk": [
        "on",
        "off",
        "once"
      ],
      "registry": [],
      "c": [
        "sqsm_map_poll_events_json",
        "sqsm_map_script_session_pump_json"
      ],
      "guide": "event-names",
      "status": "implemented-subset",
      "zh": "标准相机/图源/样式/生命周期与指针事件按实际目录实现；保留异步确认与不可变历史快照，C宿主自行轮询。",
      "en": "Implemented camera/source/style/lifecycle and pointer events follow the actual catalog. Async confirmation and immutable historical snapshots remain explicit; C hosts poll events.",
      "scriptFacades": [
        "on",
        "off",
        "once"
      ],
      "guides": {
        "zh": "/docs/manual/event-names",
        "en": "/en/docs/manual/event-names"
      }
    },
    {
      "id": "gestures",
      "canonical": [
        "dragPan",
        "scrollZoom",
        "doubleClickZoom",
        "keyboard"
      ],
      "sdk": [
        "gesturesState"
      ],
      "registry": [
        "map.gesture.read",
        "map.gesture.write"
      ],
      "c": [
        "sqsm_map_gesture_json",
        "sqsm_map_gesture_input_json",
        "sqsm_map_keyboard_plan_json"
      ],
      "guide": "gesture-policy",
      "status": "implemented-subset",
      "zh": "公开手势状态/开关与输入计划由宿主接入；触屏、移动宿主及外机覆盖以验收记录为准。",
      "en": "Hosts connect public gesture state/switches and input plans. Touch, mobile-host and external-device coverage follows actual acceptance records.",
      "guides": {
        "zh": "/docs/manual/gesture-policy",
        "en": "/en/docs/manual/gesture-policy"
      }
    },
    {
      "id": "scale",
      "canonical": [
        "sqs.scaleAt"
      ],
      "sdk": [
        "scaleAt"
      ],
      "registry": [
        "map.camera.read"
      ],
      "c": [
        "sqsm_map_camera_json"
      ],
      "guide": "map-tools",
      "status": "implemented-subset",
      "zh": "SqsMap扩展：共享局部二维比例尺；网页SDK用scaleAt，脚本用sqs.scaleAt，球面明确不可用；已接通倾斜地面交点处的局部导数。",
      "en": "SqsMap extension: shared local 2D scale. SDK uses scaleAt; scripts use sqs.scaleAt. Globe sampling rejects; pitched ground intersections use the shared analytic derivative.",
      "guides": {
        "zh": "/docs/manual/map-tools",
        "en": "/en/docs/manual/map-tools"
      }
    },
    {
      "id": "confirmation",
      "canonical": [
        "sqs.flush"
      ],
      "sdk": [
        "flush"
      ],
      "registry": [
        "map.flush"
      ],
      "c": [
        "sqsm_map_flush_json"
      ],
      "guide": "command-lifecycle",
      "status": "implemented-subset",
      "zh": "SqsMap扩展：区分应用水位、新帧、资源就绪与idle；跨计数域不能互换since。",
      "en": "SqsMap extension: distinguish applied watermarks, new frames, ready resources and idle. since values cannot cross counter domains.",
      "guides": {
        "zh": "/docs/manual/command-lifecycle",
        "en": "/en/docs/manual/command-lifecycle"
      }
    },
    {
      "id": "layer-ui",
      "canonical": [
        "sqs.getLayers",
        "sqs.getLayerMetadata",
        "sqs.setLayerMetadata"
      ],
      "sdk": [
        "getStyleLayers",
        "getLayerMetadata",
        "setLayerMetadata"
      ],
      "registry": [
        "map.layer.read",
        "map.layer.write"
      ],
      "c": [
        "sqsm_map_layer_json"
      ],
      "guide": "layer-tools",
      "status": "implemented-subset",
      "zh": "SqsMap扩展：只提供状态/操作/事件；图层面板、工具栏及清理由使用方编写，SDK方法与脚本门面明确列出。",
      "en": "SqsMap extension: state/operations/events only. Callers build panels, toolbars and cleanup; SDK and script facade names are listed explicitly.",
      "guides": {
        "zh": "/docs/manual/layer-tools",
        "en": "/en/docs/manual/layer-tools"
      }
    },
    {
      "id": "attribution",
      "canonical": [
        "sqs.getAttributions"
      ],
      "sdk": [
        "getAttributions"
      ],
      "registry": [
        "map.getAttributions"
      ],
      "c": [
        "sqsm_map_attributions_json"
      ],
      "guide": "map-attribution",
      "status": "implemented-subset",
      "zh": "归属状态与变更事件供自定义UI使用；实际数据服务的署名由使用方展示。",
      "en": "Attribution state/change events feed caller-owned UI; callers display the actual data-service credits.",
      "guides": {
        "zh": "/docs/manual/map-attribution",
        "en": "/en/docs/manual/map-attribution"
      }
    },
    {
      "id": "canvas",
      "canonical": [
        "CanvasSource"
      ],
      "sdk": [
        "CanvasSourceOptions",
        "CanvasSource",
        "addSource",
        "getSource"
      ],
      "registry": [
        "map.source.read",
        "map.source.write"
      ],
      "c": [],
      "guide": "media-api",
      "status": "implemented-subset",
      "zh": "命名Canvas共享RGBA帧与播放状态已接通；网页SDK可自动捕获2D画布。DOM仅属于浏览器，地形贴附与自定义渲染仍待实现。",
      "en": "Named Canvas RGBA frames and playback are shared. The browser SDK captures readable 2D canvases. DOM access is browser-only; terrain draping and custom rendering remain pending.",
      "guides": {
        "zh": "/docs/manual/media-api",
        "en": "/en/docs/manual/media-api"
      }
    },
    {
      "id": "custom-render",
      "canonical": [
        "CustomLayerInterface"
      ],
      "sdk": [],
      "registry": [],
      "c": [],
      "guide": "media-api",
      "status": "planned",
      "zh": "自定义后端扩展与地形媒体继续实施；第三方GL插件不自动适用于SqsMap后端。",
      "en": "Custom backend extensions and terrain media remain in progress; third-party GL plugins are not automatically compatible with SqsMap backends.",
      "guides": {
        "zh": "/docs/manual/media-api",
        "en": "/en/docs/manual/media-api"
      }
    }
  ]
}
