//! `IndexRuntime` - role trait for vector-index implementations.
//!
//! Per `docs/ROLES.md` §6. The trait carries the universal pair
//! (`atomic_opset` + `dispatch_atomic`); the engine routes through
//! `dispatch_atomic` and never invokes Shape-1 role methods at
//! runtime. Author Contract impls (`crate::contracts::Index`)
//! define the user-facing surface; `#[derive(bb::Index)]` emits the
//! bridge into `IndexRuntime::dispatch_atomic`.
//!
//! The opset declares four ops: `Add`, `Search`, `Remove`, `Train`.
//! `Train` carries the optional calibration pass; impls that skip
//! training keep the default `Contract::train` no-op and the derive
//! routes the op through `dispatch_atomic` like any other arm.
use crate;
use crateRuntimeResourceRef;
use crateSlotValue;
/// Role trait for vector-index implementations.