# scena M5 Public API Baseline

Type: Public API freeze baseline.
Status: accepted for v1.0 release gating.
Generated-from: source review plus public re-export surface.

## Root Vocabulary

- Scene
- Assets
- Renderer
- SceneImport

## Renderer Lifecycle

- Renderer::headless(width, height) -> Result<Renderer, BuildError>
- Renderer::headless_gpu(width, height) -> Result<Renderer, BuildError>
- Renderer::from_surface(surface) -> Result<Renderer, BuildError>
- Renderer::from_surface_async(surface) -> Result<Renderer, BuildError>
- Renderer::headless_with_options(width, height, options) -> Result<Renderer, BuildError>
- Renderer::from_surface_with_options(surface, options) -> Result<Renderer, BuildError>
- Renderer::from_surface_async_with_options(surface, options) -> Result<Renderer, BuildError>
- Renderer::prepare(scene) -> Result<(), PrepareError>
- Renderer::prepare_with_assets(scene, assets) -> Result<(), PrepareError>
- Renderer::render(scene, camera) -> Result<RenderOutcome, RenderError>
- Renderer::render_active(scene) -> Result<RenderOutcome, RenderError>
- Renderer::handle_surface_event(event) -> Result<(), RenderError>
- Renderer::recover_surface(surface) -> Result<(), BuildError>
- Renderer::recover_context(assets, scene) -> Result<(), PrepareError>
- Renderer::poll_device() -> DevicePoll

## Renderer Diagnostics And Settings

- Renderer::stats() -> RendererStats
- Renderer::diagnostics() -> &[Diagnostic]
- Renderer::diagnose_scene_with_assets(scene, assets) -> Vec<Diagnostic>
- Renderer::capabilities() -> &Capabilities
- Renderer::capability_report() -> CapabilityReport
- Renderer::gpu_adapter_report() -> Option<GpuAdapterReport>
- Renderer::set_debug(DebugOverlay)
- Renderer::set_debug_overlay(DebugOverlay)
- Renderer::debug_overlay() -> DebugOverlay
- Renderer::set_hover_style(InteractionStyle)
- Renderer::hover_style() -> InteractionStyle
- Renderer::set_selection_style(InteractionStyle)
- Renderer::selection_style() -> InteractionStyle
- Renderer::set_environment(EnvironmentHandle)
- Renderer::clear_environment()
- Renderer::set_exposure_ev(f32)
- Renderer::set_tonemapper(Tonemapper)
- RendererStats
- DevicePoll
- Capabilities
- CapabilityReport
- GpuAdapterReport
- AdapterLimitsReport
- SurfaceEvent
- RenderOutcome
- DebugOverlay
- ImportDiagnosticOverlay
- ImportDiagnosticOverlayKind

## Handles And Keys

- NodeKey
- CameraKey
- LightKey
- ClippingPlaneKey
- InstanceSetKey
- InstanceId
- LabelKey
- AnchorKey
- ConnectorKey
- AnimationClipKey
- AnimationMixerKey
- SceneImport
- SceneAsset
- SceneAsset::retained_source_bytes_len
- ModelHandle
- GeometryHandle
- MaterialHandle
- TextureHandle
- TextureDesc::decoded_dimensions
- TextureDesc::decoded_mip_metadata
- EnvironmentHandle
- HitTarget
- InteractionContext

## Public Errors

- Error
- BuildError
- AssetError
- ImportError
- InstantiateError
- PrepareError
- RenderError
- LookupError
- AnimationError
- NotPreparedReason
- ChangeKind

## Scene, Assets, glTF, And Animation

- Scene::new
- Scene::root
- Scene::add_renderable
- Scene::mesh
- Scene::model
- Scene::instantiate
- Scene::instantiate_with
- Scene::replace_import
- Scene::import
- Scene::import_with
- Scene::add_anchor
- Scene::anchor
- Scene::anchor_named
- Scene::add_connector
- Scene::connector
- Scene::connector_named
- Scene::connect
- Scene::connect_by_key
- Scene::preview_connection
- Scene::validate_connections
- Scene::frame_node
- Scene::frame_all_with_assets
- Scene::frame_node_with_assets
- Scene::pick
- Scene::pick_with_assets
- Scene::pick_and_select_with_assets
- Scene::pick_and_hover_with_assets
- Scene::interaction
- Scene::interaction_mut
- Assets::new
- Assets::with_fetcher
- Assets::load_scene
- Assets::reload_scene
- Assets::load_texture
- Assets::load_environment
- Assets::create_geometry
- Assets::create_material
- Assets::try_geometry
- Assets::try_material
- Assets::try_texture
- Assets::try_environment
- AnchorFrame
- ConnectorFrame
- ConnectorMetadata
- ConnectorRollPolicy
- ConnectorPolarity
- ConnectOptions
- ConnectionAlignment
- ConnectionRoll
- ConnectionParenting
- ConnectionRequest
- ConnectionPreview
- ConnectionLineOverlay
- ConnectionError
- Scene::connect_import_connectors
- SceneImport name/path/anchor/connector/clip lookup methods
- ImportAnchor::placement_node and ImportConnector::placement_node
- SceneImport replacement_anchor/replacement_connector/replacement_clip stable-name rebinding methods
- GeometryDesc::normal_lines(source, length)
- AnimationMixer play/pause/stop/seek/update methods
- FirstRender
- HeadlessGltfViewer
- HeadlessGltfViewerBuilder
- headless_gltf_viewer(path).size(width, height).with_default_light().with_default_environment().render()
- headless_gltf_viewer(path).on_change().build()
- HeadlessGltfViewer::prepare
- HeadlessGltfViewer::render_next_frame
- first_render_gltf_headless(path, width, height)
- InteractiveGltfViewer
- InteractiveGltfViewerBuilder
- interactive_gltf_viewer(path, surface).with_default_light().with_default_environment().build()
- interactive_gltf_viewer(path, surface).with_default_light().with_default_environment().with_orbit_controls().build()
- interactive_gltf_viewer(path, surface).build_async()
- InteractiveGltfViewer::handle_surface_event
- InteractiveGltfViewer::prepare
- InteractiveGltfViewer::render_next_frame
- InteractiveGltfViewer::snapshot_rgba8
- InteractiveGltfViewer::capabilities
- InteractiveGltfViewer::diagnostics
- InteractiveGltfViewer::camera
- InteractiveGltfViewer::handle_pointer_event
- InteractiveGltfViewer::handle_touch_event
- InteractiveGltfViewer::pick_at
- InteractiveGltfViewer::pick_and_select_at
- InteractiveGltfViewer::pick_and_hover_at
- Renderer::headless_default()
- Scene::with_default_camera() -> (Scene, CameraKey)
- AssetStoreId
- AssetStoreId::get -> u64
- Assets::store_id() -> AssetStoreId
- Assets::contains_geometry(GeometryHandle) -> bool
- Assets::contains_material(MaterialHandle) -> bool
- Assets::contains_texture(TextureHandle) -> bool
- Assets::contains_environment(EnvironmentHandle) -> bool
- Assets::release_unreferenced() -> AssetEvictionStats
- Assets::release_unreferenced_with_scene_roots(impl IntoIterator<Item = &SceneAsset>) -> AssetEvictionStats
- AssetEvictionStats { geometries_evicted, materials_evicted, textures_evicted, environments_evicted }
- AssetLoadReport::warnings() -> &[AssetLoadWarning]
- AssetLoadWarning::ExternalImageMissing { path, reason }
- Scene::inspect_with_assets
- SceneCameraFrustumInspection
- SceneDrawInspection
- SceneMaterialInspection
- SceneNormalInspection
- SceneTextureInspection
