1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Engine-agnostic core of **proef**, the declarative multi-engine e2e test runner.
//!
//! This crate owns the full front-end pipeline (gherkin parse → bind → lower → emit),
//! the engine seam ([`engine::EngineFactory`] / [`engine::EngineSession`], ADR-0002),
//! the [`world::World`] variable scope (ADR-0005), the serde [`event::Event`] spine
//! (ADR-0008), and the fault taxonomy with stable exit codes (ADR-0009).
//!
//! # Core purity (sans-IO lite)
//!
//! The pipeline stages in this crate do no IO, read no clocks or environment, and
//! generate no randomness — `run_id`, timestamps, and env snapshots are **injected**
//! values. The single sanctioned persistence component is [`world::GlobalStore`],
//! whose load/save functions are invoked only from the orchestrating edge (the CLI),
//! never from pipeline code. This is what makes snapshot and property tests
//! bit-deterministic; do not break it for convenience.