tryParseLine static method
Parses one strict JSONL evidence line.
Implementation
static TuiEvidenceRecord? tryParseLine(String line) {
final trimmed = line.trim();
if (trimmed.isEmpty) return null;
final decoded = _decodeJsonObject(trimmed);
if (decoded == null) return null;
final version = decoded['v'];
if (version is! int && version is! num) return null;
if (version.toInt() != _schemaVersion) return null;
final type = decoded['type'];
final decisionType = decoded['decisionType'];
final result = decoded['result'];
final timestampUs = decoded['timestampUs'];
if (type is! String || type.isEmpty) return null;
if (decisionType is! String || decisionType.isEmpty) return null;
if (result is! String || result.isEmpty) return null;
if (timestampUs is! int && timestampUs is! num) return null;
final rawFactors = decoded['factors'];
if (rawFactors is! Map) return null;
final factors = <String, Object?>{};
for (final entry in rawFactors.entries) {
final key = entry.key;
if (key is String) {
factors[key] = entry.value;
}
}
return TuiEvidenceRecord(
version: version.toInt(),
type: type,
timestampUs: timestampUs.toInt(),
decisionType: decisionType,
result: result,
factors: factors,
runId: decoded['runId'] as String?,
);
}