Centralizes file writing for the generators: respects --force (overwrite)
and --dry-run (report only), and accumulates a summary it can print at the
end so every command reports its work the same way.
Inspects the current Flutter project so generators can adapt their output to
the modules that are actually installed (e.g. use the widget library and
design tokens only when those modules exist).