This will allow the following generic syntax:
pip install aind-clabe
uv run clabe my_experiment.py
my_experiment.py would thus be:
from clabe import clabeable
@clabeable(name="super_duper_experiment", clabe_yml: None | Path = ./clabe.yml", ...)
(async) def vr_foraging_with_photometry(launcher: Launcher):
...
A common CLI tool could then go through the my_experiment.py module and find all tagged callables. Once this is done, the CLI could offer users the ability to select between experiments with a dropdown.
This would clean-up a fair amount of logic in the children repositories and allow for more flexible workflow definition