Live draft update from the editing field — intentionally does NOT notify (the field owns its own text); committed value lands via commit.
void updateDraft(String value) => _draft = value;