An engine drives a user interface, such as a browser, a simulator, or a TV,
for screen, app, and the agent. The runner drives every engine over the
engine protocol: JSON-RPC messages, one per
engine member. @e2e-dev/web and @e2e-dev/mobile are engines too.
Choose how to write one
An engine from defineEngine runs in the runner’s process. Every call still
crosses the protocol, so an engine that passes its suite needs nothing a
server elsewhere couldn’t receive.