pub fn problems(source: &str) -> Vec<Problem>
What is wrong in a spec, placed under the value at fault: a field its parser would refuse, a live range that never starts or ends. A spec that names no field has nothing to check here.