compile_commands.json has records which command's are compiler invocations for compilation.
For diagnostics and completion, we need to transform these invocations to the correct value for various semantic tasks.
Currently, this ability is implemented in the YCMD client. Consider moving this to the server to do less work on the client. This makes it easier to write clients.