Use the semantic component for the job and keep application behavior on public APIs. The Introduction brings together the consumer-facing principles; this short page remains as a quick checklist.
Do not bind a second value when FormField already supplies it. Distinguish a model update from a proposal: Dialog asks to close, while your application owns open. Use meaningful action names and accessible field labels.