Introducing types to allow flowing compilation settings to the application

Thoughts on this? Should I leave this as `<string, string> or would we dump `JObject`s into this if it's a complex  type?