# ADR 0010: ActorKind and inspector architecture

## Status

Partially superseded by [ADR 0034](0034-registry-driven-authoring-components.md).

## Context

Inspector panels were routed by `if world.get::<LightDesc>` and mixed with `bevy_inspector_egui` entity dumps, which exposed runtime components and diverged from saved scenes.

## Decision

- Every savable `LevelObject` carries a required **`ActorKind`** component (schema v2).
- One-shot **`ActorKind` backfill** runs in `crates/scene` migration v1→v2; load-time backfill is a fallback only for unsaved in-memory entities.
- **`validate_actor`** runs on save and rejects invalid component sets per kind. ADR 0034 replaces
  this authority model with component-owned validation while retaining `ActorKind` as a derived
  compatibility/display hint.
- The default **Inspector** tab uses **`actor_inspector`** only (transform first, then authoring panels). No `ui_for_entity_with_children` in production builds.

## Consequences

- Spawn/history snapshots always include `actor_kind`.
- `DefaultInspectorConfigPlugin` is not registered in the editor app; `bevy-inspector-egui` remains only for `SelectedEntities` until selection is decoupled.
- Optional `inspector-debug` feature may add a separate engine ECS tab later—not a second inspector on the same tab.
