Project variables let a model use a named setting without hardcoding the value in every file. A var call can supply a default, or require a value to be configured. Command-line variables override project defaults for a run.
Keep the rendered SQL type in mind: a string value needs SQL quotes, while a numeric threshold should remain numeric.
Targets describe execution environments. A developer should build in an isolated schema, while a production job writes to its intended production schema. target.name can choose environment-specific behavior, but it shouldn't silently change a metric's definition.
This simulator has dev and prod targets; it demonstrates schema isolation rather than storing credentials. Never put passwords in dbt_project.yml. These tasks check the resulting records or configuration after the chosen variable and target have been applied.