///|
pub(all) suberror IcdParseError {
  EmptyInput
  UnsupportedEdition(String)
  InvalidCode(String)
} derive(Debug, Eq, ToJson)

///|
pub(all) suberror CatalogError {
  DuplicateCode(String)
  InvalidEntry(String, String)
  MissingReference(String, String)
} derive(Debug, Eq, ToJson)

///|
fn parse_issue(
  input : String,
  message : String,
  hint : String,
) -> ValidationIssue {
  { code: input, message, hint }
}