Introducing types to allow flowing compilation settings to the application

Ok. I can use `IProjectResolver` in the implementation to discover the project at that point,.