Constrained code generation for software engineering

A practical distinction between grammar constraints, type constraints, preservation boundaries, and behavior-level acceptance checks for generated code.