[MsEngine] is the abstract base class for engine specs. It cannot be instantiated directly; engines create concrete subclasses via `S7::new_class(parent = MsEngine)`. The spec fields are `name`, `mode` (`"extract"` or `"fit"`), `params` (named list), `deterministic`, `packages` (required R packages) and `label` (optional human-readable name; printing falls back to `name`). Violations raise `msuiter_error_engine`.
Arguments
- name
single lower-case snake_case engine name (the registry key).
- mode
one of `"extract"` (signature discovery) or `"fit"` (reference-based fitting).
- params
named list of hyper-parameters.
- deterministic
single TRUE or FALSE: seeded and thread invariant.
- packages
character vector of required R packages (may be empty).
- label
optional human-readable engine label; printing falls back to `name` when empty.