# M10 Public API Diff From M5 Baseline
Type: Release evidence.
Baseline: [`m5-public-api-baseline.txt`](m5-public-api-baseline.txt).
This file records intentional public API additions since the M5 v1.0 release-candidate
baseline. No M5 baseline item is intentionally removed or renamed by this M10 delta.
## Renderer
- Added `Renderer::diagnose_scene(&Scene) -> Vec<Diagnostic>` for non-mutating beginner
recovery diagnostics. This is additive and does not replace `prepare()`, `render()`, or
render-time errors.
- Added `SurfaceViewport` and `SurfaceEvent::ViewportChanged(SurfaceViewport)` to make
logical size plus DPR resize paths explicit.
## Controls
- Added ergonomic `PointerEvent` constructors for primary/secondary press, move, release,
and wheel events.
- Added `TouchEvent`, `TouchEventKind`, and `OrbitControls::handle_touch` for platform
neutral touch orbit/pinch mapping.
- Added `OrbitControls::focus`, `OrbitControls::with_damping`, `damping_factor`, and
`apply_to_scene` look-at behavior.
## Scene And Import Ergonomics
- Added `Scene::look_at_point` and transform helper coverage for common viewer operations.
- Added left-handed coordinate conversion options and explicit unit conversion helpers.
- Added `SceneImport::anchors`, `SceneImport::anchors_for`, and
`SceneImport::anchor_debug_metadata`.
- Added `SceneImport::replacement_clip` for stable-name animation clip rebinding after
`Scene::replace_import`.
- Added `ImportAnchorDebugMetadata` to expose import-local anchor overlay metadata without
embedding domain semantics in anchor names.
## Geometry And Helpers
- Added `GeometryDesc::bounding_box`, `camera_frustum`, `light_helper`, `origin_marker`,
`pivot_marker`, and `anchor_marker`.
## Assets, glTF, And Materials
- Added `GltfDecoderPolicy` and `GltfExtensionDiagnostic::decoder_policy`.
- Added `AssetLoadControl`, `AssetLoadReport`, `Assets::load_scene_with_report`, and
`Assets::load_scene_controlled` for cache/fetch telemetry and explicit cancellation.
- Added `AssetLoadProgress` and `Assets::load_scene_with_progress` for deterministic asset
progress events.
- Added `TextureSourceFormat` and `TextureDesc::source_format()` so compressed texture
policy is explicit in public descriptors.
- Added `CapabilityReport` and `Renderer::capability_report()` for typed capability,
adapter, and degraded-feature diagnostics export.
- Added `Capabilities::bloom` and `Capabilities::screen_space_ambient_occlusion` so bloom
and SSAO/GTAO are explicitly reported as `FeatureDisabled` until rendered-output proof
exists, instead of being implied by FXAA or depth support.
- Added the feature-gated `SceneInspectionReport`, `SceneNodeInspection`,
`SceneDrawInspection`, `SceneCameraFrustumInspection`, `SceneMaterialInspection`,
`SceneTextureInspection`, `SceneNormalInspection`, `Scene::inspect()`, and
`Scene::inspect_with_assets()` debugging surface behind `inspection`.
- Added `TextureDesc::decoded_dimensions()` and `TextureDesc::decoded_mip_metadata()` so
texture preview/debug UIs can show decoded CPU payload dimensions and mip byte lengths
without sampling pixels.
- Added per-slot `KHR_texture_transform` getters/builders for normal, metallic-roughness,
occlusion, and emissive texture slots.
- Added `AssetError::MissingTexture`, `AssetError::UnsupportedTextureFormat`, and
`AssetError::Cancelled`.
## Semver Decision
All listed changes are additive public API expansions. They are accepted for the M10 release
candidate because they close documented M7-M10 contracts without changing the M5 prepare,
render, typed-handle, asset-cache, or renderer non-goal contracts.