Превратить JSON-настройки в разрешённый план выгрузки

Программа выполнена в CLI: она проверяет контракт приложения или разбирает локальные файлы; соединение с базой не открывается.

Результат выполнения
НаблюдениеРезультат
Принятое заданиеэлектрика; максимум 20 строк; sku, title, qty
Строка вместо числаrow_limit: целое число от 1 до 100
Неизвестная настройкаunknown: timeout_seconds
Массив вместо объектаjob: нужен JSON-объект
Соединение с базой открытонет
Файлexport-plan.json
Полученные строки и дополнительные наблюдения
{
    "normalized_decisions": [
        {
            "label": "valid",
            "accepted": true,
            "plan": {
                "profile": "warehouse_read",
                "category": "электрика",
                "row_limit": 20,
                "format": "stock_csv",
                "columns": [
                    "sku",
                    "title",
                    "qty"
                ],
                "order_by": [
                    "id"
                ],
                "connection_source": "private_environment"
            },
            "errors": []
        },
        {
            "label": "string_limit",
            "accepted": false,
            "plan": null,
            "errors": [
                "row_limit: целое число от 1 до 100"
            ]
        },
        {
            "label": "unknown_settings",
            "accepted": false,
            "plan": null,
            "errors": [
                "unknown: timeout_seconds",
                "profile: неизвестный логический профиль",
                "row_limit: целое число от 1 до 100",
                "format: неизвестный формат"
            ]
        },
        {
            "label": "wrong_shape",
            "accepted": false,
            "plan": null,
            "errors": [
                "job: нужен JSON-объект"
            ]
        }
    ],
    "row_limit_unit": "rows",
    "configuration_is_not_sql": true,
    "credentials_in_plan": false,
    "connection_opened": false
}

result.json содержит те же данные; metrics.json — проверки. Реквизиты входа в эти файлы не записываются.