///|
/// The assembly diagnostic codes. Parser diagnostics keep their syntax codes.
pub fn diagnostic_codes() -> Array[(String, String)] {
  [
    ("SM-MODEL-001", "Invalid input or unsupported version"),
    ("SM-MODEL-002", "Invalid shape ID or import"),
    ("SM-MODEL-003", "Conflicting shape definitions"),
    ("SM-MODEL-004", "Unresolved shape reference"),
    ("SM-MODEL-005", "Invalid reference target"),
    ("SM-MODEL-006", "Conflicting metadata"),
    ("SM-MODEL-007", "Conflicting trait values"),
    ("SM-MODEL-008", "Invalid mixin"),
    ("SM-MODEL-009", "Cyclic dependency"),
    ("SM-MODEL-010", "Invalid shape properties or members"),
    ("SM-MODEL-011", "Invalid trait application"),
    ("SM-MODEL-012", "Unresolved elided member"),
    ("SM-MODEL-013", "Unresolved apply target"),
    ("SM-MODEL-014", "Built-in model redefinition"),
    ("SM-MODEL-015", "Invalid JMESPath condition syntax"),
    ("SM-MODEL-016", "Invalid JMESPath condition operation"),
    ("SM-MODEL-017", "Non-boolean condition expression"),
  ]
}