{
  "errors": [
    "Table 'asn_line_item'.quantity: missing CHECK constraint (e.g., CHECK (quantity >= 0))",
    "Table 'vendor_history'.change_type: uses VARCHAR(30) for an enumerable field. v8 requires renaming to 'change_type_id INT' with FK to a 'cfg_change_type' lookup table.",
    "Table 'users_history'.change_type: uses VARCHAR(30) for an enumerable field. v8 requires renaming to 'change_type_id INT' with FK to a 'cfg_change_type' lookup table.",
    "Table 'roles_history'.change_type: uses VARCHAR(30) for an enumerable field. v8 requires renaming to 'change_type_id INT' with FK to a 'cfg_change_type' lookup table.",
    "Table 'permissions_history'.change_type: uses VARCHAR(30) for an enumerable field. v8 requires renaming to 'change_type_id INT' with FK to a 'cfg_change_type' lookup table.",
    "Menu 'Configuration' has 10 submenus \u2014 consider splitting into multiple menus (target 2-6 per menu).",
    "Menu 'Lookup Tables' has only 1 submenu ('ASN Statuses') \u2014 every menu MUST have at least 2 submenus. Split into at least 2 submenus representing distinct user-facing functions (e.g., a list/directory view and a create/manage view).",
    "CFG-FK NEEDED: Table 'vendor_history'.change_type uses VARCHAR(30) for an enumerable field. v8: rename to 'change_type_id INT' with REFERENCES cfg_change_type(change_type_id).",
    "CFG-FK NEEDED: Table 'users_history'.change_type uses VARCHAR(30) for an enumerable field. v8: rename to 'change_type_id INT' with REFERENCES cfg_change_type(change_type_id).",
    "CFG-FK NEEDED: Table 'roles_history'.change_type uses VARCHAR(30) for an enumerable field. v8: rename to 'change_type_id INT' with REFERENCES cfg_change_type(change_type_id).",
    "CFG-FK NEEDED: Table 'permissions_history'.change_type uses VARCHAR(30) for an enumerable field. v8: rename to 'change_type_id INT' with REFERENCES cfg_change_type(change_type_id)."
  ],
  "warnings": [],
  "is_valid": false
}