bashrs 6.66.0

Rust-to-Shell transpiler for deterministic bootstrap scripts
//! Decision tracing for Tarantula fault localization (ยง11.10.1).
//!
//! Records emitter decisions during transpilation so they can be fed into
//! the SBFL module to rank which decisions correlate with corpus failures.

use serde::{Deserialize, Serialize};

/// A single decision made by the emitter during transpilation.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TranspilerDecision {
    /// Category of decision (e.g., "ir_dispatch", "assignment_value")
    pub decision_type: String,
    /// What was chosen (e.g., "Let", "single_quote", "seq_range")
    pub choice: String,
    /// IR node context (e.g., "Let", "If", "For")
    pub ir_node: String,
}

/// Ordered trace of decisions from a single transpilation run.
pub type DecisionTrace = Vec<TranspilerDecision>;