While we are using the erased-serde crate, which should allow us to do this, we don't actually have custom Serialize implementations for MetricTrait types anyway; we use the value() method instead. We should fix this. In particular, this would be useful for NPVMetric, to make it clear to the user when we are using the fallback comparison because the denominator is zero.