FileProject needs MetaService.

I'm inclined to provide piecewise injection from MetaService so that deep
hierarchies like this can just pass metaSvc down the line and everyone can just
inject the services they need into private members...

It's more verbose, but it's also less fragile (ctor signatures don't change).