scena 1.0.0

A Rust-native scene-graph renderer with typed scene state, glTF assets, and explicit prepare/render lifecycles.
Documentation
# 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.