{
    "success": true,
    "cascade_run": {
        "cascade_run_id": 4,
        "app_id": 5,
        "operator": "full_green_test",
        "status": "failed",
        "started_at": "2026-06-06 02:31:50",
        "finished_at": "2026-06-06 02:31:50",
        "notes": "Cascade halted at stage 'preflight': Naming contract: fatal (3 checks)"
    },
    "stages": [
        {
            "stage_result_id": 12,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "stage": "preflight",
            "status": "fatal",
            "upstream_target": "importer",
            "request_url": null,
            "response_code": null,
            "response_body": "{\"status\":\"fatal\",\"checks\":[{\"check_type\":\"slug_format\",\"input_value\":\"moneda\",\"result\":\"pass\",\"message\":\"Table name 'moneda' matches naming contract format.\",\"fix_suggestion\":null},{\"check_type\":\"reserved_word\",\"input_value\":\"moneda\",\"result\":\"pass\",\"message\":\"Table name 'moneda' is not a MySQL reserved word.\",\"fix_suggestion\":null},{\"check_type\":\"upstream_primary_key\",\"input_value\":\"moneda\",\"result\":\"fatal\",\"message\":\"Missing expected primary key 'moneda_id'. Tables must define a primary key named after the singular table name with '_id' suffix.\",\"fix_suggestion\":\"Add column 'moneda_id' VARCHAR(32) PRIMARY KEY\"}],\"fix_suggestions\":[\"Add column 'moneda_id' VARCHAR(32) PRIMARY KEY\"]}",
            "started_at": "2026-06-06 02:31:50",
            "finished_at": "2026-06-06 02:31:50"
        },
        {
            "stage_result_id": 13,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "stage": "schema_import",
            "status": "pending",
            "upstream_target": "ia_case (preview)",
            "request_url": null,
            "response_code": null,
            "response_body": null,
            "started_at": null,
            "finished_at": null
        },
        {
            "stage_result_id": 14,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "stage": "model_gen",
            "status": "pending",
            "upstream_target": "ia_case",
            "request_url": null,
            "response_code": null,
            "response_body": null,
            "started_at": null,
            "finished_at": null
        },
        {
            "stage_result_id": 15,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "stage": "ui_api_gen",
            "status": "pending",
            "upstream_target": "quantix\/modern-generator",
            "request_url": null,
            "response_code": null,
            "response_body": null,
            "started_at": null,
            "finished_at": null
        },
        {
            "stage_result_id": 16,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "stage": "verify",
            "status": "pending",
            "upstream_target": "ia_case + quantix",
            "request_url": null,
            "response_code": null,
            "response_body": null,
            "started_at": null,
            "finished_at": null
        }
    ],
    "naming_checks": [
        {
            "naming_check_id": 9,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "check_type": "slug_format",
            "input_value": "moneda",
            "result": "pass",
            "message": "Table name 'moneda' matches naming contract format.",
            "fix_suggestion": null,
            "checked_at": "2026-06-06 02:31:50"
        },
        {
            "naming_check_id": 10,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "check_type": "reserved_word",
            "input_value": "moneda",
            "result": "pass",
            "message": "Table name 'moneda' is not a MySQL reserved word.",
            "fix_suggestion": null,
            "checked_at": "2026-06-06 02:31:50"
        },
        {
            "naming_check_id": 11,
            "cascade_run_id": 4,
            "app_table_id": 11,
            "check_type": "upstream_primary_key",
            "input_value": "moneda",
            "result": "fatal",
            "message": "Missing expected primary key 'moneda_id'. Tables must define a primary key named after the singular table name with '_id' suffix.",
            "fix_suggestion": "Add column 'moneda_id' VARCHAR(32) PRIMARY KEY",
            "checked_at": "2026-06-06 02:31:50"
        }
    ]
}