Изменить название и статус, сохранив остальные данные

Ответы получены от MySQL через X Protocol. Созданные программой учебные объекты после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Название доСветильник
После patch одного поляЛампа
Статус после первого patchdraft
Название после формыСветильник PRO
Статус после формыpublished
Артикул сохранёнLED-01
Остаток сохранён4
Другой товар не изменёнда
Изменено вторым patch1
Строки и дополнительные наблюдения
{
    "before": {
        "_id": "LED",
        "sku": "LED-01",
        "name": "Светильник",
        "stock": 4,
        "status": "draft"
    },
    "after_one_field": {
        "_id": "LED",
        "sku": "LED-01",
        "name": "Лампа",
        "stock": 4,
        "status": "draft"
    },
    "form_values": {
        "name": "Светильник PRO",
        "status": "published"
    },
    "patch_json": "{\"name\":\"Светильник PRO\",\"status\":\"published\"}",
    "after": {
        "_id": "LED",
        "sku": "LED-01",
        "name": "Светильник PRO",
        "stock": 4,
        "status": "published"
    },
    "other_before": {
        "_id": "CABLE",
        "sku": "CABLE-02",
        "name": "Кабель",
        "stock": 10,
        "status": "draft"
    },
    "other_after": {
        "_id": "CABLE",
        "sku": "CABLE-02",
        "name": "Кабель",
        "stock": 10,
        "status": "draft"
    },
    "command_class": "mysql_xdevapi\\CollectionModify",
    "receipt_class": "mysql_xdevapi\\Result"
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.