The apply axis: per-path predictions of whether a patch applies to
the target tree as written. Independent of every pin verdict, so an
Inapplicable row still carries its predicted conflicts.
The canonical check-family wire payload. One definition the CLI
serializes, the driver parses, and schema show documents, so the
three cannot drift apart.
Round-level roll-up of a check batch result set. Derived on read
from the rows, never serialized: it carries no schema version and
no wire field is added.
The corpus fold: joins recorded verdicts to observed build outcomes
and reports how trustworthy the verdict is. The fingerprint pairs the
two; this is a plain fold over the paired rows, run as needed, not a
stored subsystem.
Row-level symbol-axis findings resolved against the target tree.
The same reasons also merge into applicable pin verdicts; this
record is the copy kept for inapplicable ones, so a suite-only
pick cannot silently drop what the target checks found.
Structured shape for Erlang type expressions inside -spec and
-callback declarations. signature: String stays the source of
truth on disk; this AST is built on demand from that string by
this crate’s model::spec_parser. Comparators on top drive the
return-shape conformance check.
Erlang type-expression parser. Recursive descent over -spec and
-callback return-type text. Lossy by design: unrecognised
constructs collapse to SpecType::Unknown so the comparator stays
conservative.