num? toNumber(Object? value) { if (value is num) return value; if (value is String) { num? result = num.tryParse(value); return (result != null && !result.isNaN) ? result : null; } return null; }