ready-active-safe 0.1.3

Lifecycle engine for externally driven systems
Documentation
# TransitionRecord

*Requires feature `journal`.*

A record of one processed event. Captures the before/after modes and emitted
commands so a system can be audited or replayed deterministically.

## Fields

- `step: usize` — sequential step index (0-based)
- `from: M` — mode before processing the event
- `to: M` — mode after applying the decision
- `event: E` — the processed event
- `commands: Vec<C>` — commands emitted, in order
- `timestamp: SystemTime` — wall-clock time when recorded

## Construction

```rust
use ready_active_safe::journal::TransitionRecord;

let record = TransitionRecord::new(
    0,
    "ready",
    "active",
    "start",
    vec!["initialize"],
);

assert_eq!(record.step, 0);
assert_eq!(record.from, "ready");
assert_eq!(record.to, "active");
assert_eq!(record.event, "start");
assert_eq!(record.commands, vec!["initialize"]);
```

## Used by `InMemoryJournal`

```rust
use ready_active_safe::journal::{InMemoryJournal, TransitionRecord};

let mut journal: InMemoryJournal<&str, &str, &str> = InMemoryJournal::new();

journal.record_step(&"ready", &"active", &"start", &["init"]);
assert_eq!(journal.len(), 1);

let record = &journal.records()[0];
assert_eq!(record.from, "ready");
assert_eq!(record.to, "active");
```

## See Also

- [`InMemoryJournal`]in_memory_journal.md — stores and queries records
- [`ReplayError`]replay_error.md — errors when replay diverges from records