def valid_line_definitions?
      line_definitions.any? { |(_, ld)| ld.header } && line_definitions.any? { |(_, ld)| ld.footer }
    end
def valid_line_definitions?
      line_definitions.any? { |(_, ld)| ld.header } && line_definitions.any? { |(_, ld)| ld.footer }
    end
Checks whether the line definitions form a valid language.
 A file format should have at least a header and a footer line type