Fact
data class Fact(val key: String, val value: String, val side: Side, val confidence: Confidence, val via: Via, val span: Span, val agreed: Int = 0, val alternatives: List<String> = emptyList())(source)
One environment fact as a Drift attribute key and value (tool.node.version, run:signature). agreed counts the other spans that gave the same value; alternatives holds other values seen for the same key and side, which lower confidence.