feat(lib): Finalize async Experiment ABC — define interface contract and document public API
Goal
Finalize the asynchronous Abstract Base Class (ABC) for Experiment in plesty-lib. Experiments orchestrate one or more Devices to execute a measurement routine.
Requirements
- Define the public API:
setup(),run(),teardown(), and data output contract - Must compose cleanly with the
DeviceABC — an Experiment receives Device instances, not raw hardware - All async-capable methods must be
async - Full type annotations and Mypy compliance
- Docstrings and a minimal runnable example in the module docs
Definition of Done
- ABC is merged and published
- The demo experiment in
hub/experiments/demosuccessfully subclasses it -
plesty checkpasses onplesty-lib