pub fn parse_line(line: &str) -> Result<SingerMessage, String>Expand description
Parse one line of tap stdout into a SingerMessage.
Returns Err(reason) for a blank line, non-JSON, a non-object payload, a
missing/non-string type, or a well-typed message missing a required field (e.g. a RECORD with no record`). The caller decides whether that aborts the
run or is skipped, per the malformed policy.