entrypoints property
The main()s worth launching, named.
Empty means "scan for them": every lib/*.dart with a main() is
offered, under its file name. The scan is provisional and this list is
authority — the rule discovery already has everywhere else.
Naming them is worth more than it looks. An agent picks an entry point
off a list, and Staging tells it what the thing is where
main_staging.dart only tells it where the thing lives.
Implementation
final List<Entrypoint> entrypoints;