/// Deferral always carries an excuse. Free text, minimum length enforced, no /// template buttons — the friction is the point. class DeferralRequest { String commitmentId; String excuseText; String newDueStart; String newDueEnd; DeferralRequest({ this.commitmentId = "", this.excuseText = "", this.newDueStart = "", this.newDueEnd = "", }); Map toJson() { final Map data = {}; data['commitmentId'] = commitmentId; data['excuseText'] = excuseText; data['newDueStart'] = newDueStart; data['newDueEnd'] = newDueEnd; return data; } }