Three scenarios verifying the library compiles, validates, and renders
without depending on cleveragents-core:
1. Compile a minimal two-node graph actor — parses a v3 actor dict
through ActorConfigSchema.model_validate, compiles via
compile_actor, asserts the metadata lists both node ids.
2. Reject an actor missing a required field — drops 'provider' from
a known-good actor, asserts Pydantic raises a ValidationError.
3. Render a simple template — passes '{greeting}, {name}!' through
SecureTemplateRenderer with greeting='Hello', name='actor';
asserts the rendered result is 'Hello, actor!'.
`features/environment.py` is intentionally empty — the library has
no DB, no HTTP, no fixtures to set up.
Verified green: `behave features/` → 1 feature passed, 3 scenarios
passed, 11 steps passed.
Notable subtlety: Behave's Context object reserves `config` as an
internal attribute, so the step files use `actor_config` to avoid
KeyError('config') on overwrite.