Передать настройку и выполнение через ясные контракты

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

Наблюдаемый результат программы
НаблюдениеРезультат
Статус до executedraft
Статус после executepublished
Возвращён из bindmysql_xdevapi\CollectionModify
Возвращён из sortmysql_xdevapi\CollectionModify
Возвращён из limitmysql_xdevapi\CollectionModify
Возвращён из executemysql_xdevapi\Result
Настройки относятся к одному объектуда
Контракт bindда
Контракт limitда
Контракт skipда
Контракт sortда
Контракт executeда
Строки и дополнительные наблюдения
{
    "before_execute": {
        "_id": "LED",
        "name": "Светильник",
        "status": "draft"
    },
    "after_execute": {
        "_id": "LED",
        "name": "Светильник",
        "status": "published"
    },
    "contracts": {
        "bind": true,
        "limit": true,
        "skip": true,
        "sort": true,
        "execute": true
    },
    "return_types": {
        "bind": "mysql_xdevapi\\CollectionModify",
        "sort": "mysql_xdevapi\\CollectionModify",
        "limit": "mysql_xdevapi\\CollectionModify",
        "execute": "mysql_xdevapi\\Result"
    },
    "affected": 1
}

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