{
    "success": true,
    "cascade_run": {
        "cascade_run_id": 24,
        "app_id": 7,
        "operator": "operator",
        "status": "partial",
        "started_at": "2026-06-06 15:27:57",
        "finished_at": "2026-06-06 15:27:59",
        "notes": "Cascade halted at table 'invoice' (completed 0\/2)"
    },
    "stages": [],
    "naming_checks": [
        {
            "naming_check_id": 117,
            "cascade_run_id": 24,
            "app_table_id": null,
            "check_type": "slug_format",
            "input_value": "invoice",
            "result": "pass",
            "message": "Table name 'invoice' matches naming contract format.",
            "fix_suggestion": null,
            "checked_at": "2026-06-06 15:27:58"
        },
        {
            "naming_check_id": 118,
            "cascade_run_id": 24,
            "app_table_id": null,
            "check_type": "reserved_word",
            "input_value": "invoice",
            "result": "pass",
            "message": "Table name 'invoice' is not a MySQL reserved word.",
            "fix_suggestion": null,
            "checked_at": "2026-06-06 15:27:58"
        },
        {
            "naming_check_id": 119,
            "cascade_run_id": 24,
            "app_table_id": null,
            "check_type": "upstream_primary_key",
            "input_value": "invoice",
            "result": "warning",
            "message": "Missing expected primary key 'invoice_id'. Tables must define a primary key named after the singular table name with '_id' suffix.",
            "fix_suggestion": "Add column 'invoice_id' VARCHAR(32) PRIMARY KEY",
            "checked_at": "2026-06-06 15:27:58"
        }
    ]
}