pub fn validate(registry: &Registry, events: &[TraceEvent]) -> ReportExpand description
Validates a parsed trace against a requirement registry.
use mcp_conformance_core::requirement::Registry;
use mcp_trace_validator::report::Verdict;
use mcp_trace_validator::{engine, reader};
let registry = Registry::builtin_2025_11_25()?;
let trace = r#"{"seq":0,"direction":"client-to-server","transport":"stdio","kind":"message","payload":{"jsonrpc":"2.0","id":1,"method":"tools/list"}}"#;
let events = reader::parse_trace(trace, &reader::Limits::default())?;
let report = engine::validate(®istry, &events);
assert_eq!(report.verdict(), Verdict::Fail); // tools/list before initialize§Panics
When events is not in strictly increasing seq order — a contract
violation only a hand-built slice can commit, since
reader::parse_trace rejects such
documents (TraceContext::new documents the reasoning).