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