fret-runtime 0.1.0

Runtime abstractions and scheduling surfaces for host integration in Fret.
Documentation
use crate::{CommandId, CommandMeta, CommandRegistry};

/// Stable action identifier (v1).
///
/// v1 compatibility strategy (ADR 0307): `ActionId` is an alias over `CommandId` so we can adopt
/// action-first authoring without keymap schema churn.
pub type ActionId = CommandId;

/// Action metadata (v1).
///
/// v1 strategy (ADR 0307): action metadata is the existing command metadata surface.
pub type ActionMeta = CommandMeta;

/// Action registry (v1).
///
/// v1 strategy (ADR 0307): action metadata is stored in the existing command registry.
pub type ActionRegistry = CommandRegistry;

/// Typed unit action marker type (v1).
///
/// This trait is intentionally minimal: it maps a Rust marker type to a stable [`ActionId`].
/// v1 standardizes on unit actions only (no structured payload).
pub trait TypedAction: 'static {
    fn action_id() -> ActionId;
}