[This is a suggestion for SSDT so please make sure it is routed to the correct person/people. thanks.]
In my current place of work I am responsible for maintaining our datadude projects and we have another team that is in charge of deployments. Hence, when we place new properties into the sqlcmdvars file I need to tell the deployment team what values to supply for that property per environment (dev, systest, uat, prod).
Unfortunately lack of communication/human error occasionally creeps in and, for whatever reason, no value gets supplied for some property at deployment time. If this is the case the default value as specified in the sqlcmdvars file gets used instead - invariably this will be the wrong value.
Occasionally this can have pretty dire consequences. In the last couple of days we came across a situation where the required value did not get supplied and the upshot was that the wrong value was being used in a filter predicate in a view - this didn't produce an error but it DID result in the wrong data being inserted into a table - and that issue was not found until weeks later. As you can imagine this has caused a big big problem.
I would like a mechanism within SSDT of preventing this from ever happening.