Reads an attribute as a double.
double? decimal(String key) { final value = attributes[key]; if (value is num) return value.toDouble(); return double.tryParse(value?.toString() ?? ''); }