Option<double> valueAsDouble(String key) { return getValue(key).fold(() => none(), (a) { if (a is NumericDataField) { return a.value; } else { return none(); } }); }