Converts the evaluation result to a JSON-compatible map.
Map<String, dynamic> toJson() { return { 'value': value, 'reason': reason, 'variant': variant, }; }