{
    "id": "cub172-text-extraction",
    "title": "Получить UTF-8-инструкцию из прежнего CLOB без лишнего вывода",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Заголовок",
            "Инструкция №42"
        ],
        [
            "Первый шаг",
            "1. Проверить O'Reilly."
        ],
        [
            "Второй шаг",
            "2. Сохранить акт ✓."
        ],
        [
            "Размер UTF-8, байт",
            93
        ]
    ],
    "checks": {
        "send_returned_true": true,
        "text_exact": true,
        "byte_size_matches": true,
        "three_lines": true,
        "utf8_valid": true,
        "apostrophe_preserved": true,
        "file_exact": true,
        "legacy_closed": true,
        "owned_objects_removed": true
    },
    "observations": {
        "transport": "captured PHP output in CLI, not HTTP",
        "return_type": "boolean",
        "size": "93",
        "utf8_lines": [
            "Инструкция №42",
            "1. Проверить O'Reilly.",
            "2. Сохранить акт ✓."
        ],
        "sha256": "21d1e9978d10b58669408f2798d5f4e19936228f0995ed9e366555197056322b",
        "captured_bytes": 93
    },
    "runtime": {
        "php": "7.4.33",
        "extension": "11.2.0.0002",
        "php_extension_metadata": null,
        "server_version": "11.3.5.1274",
        "client_version": "11.2.0",
        "database": "phpmanual172",
        "transport": "isolated_loopback_broker",
        "charset": "utf-8",
        "autocommit": false
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "c172_text_extract_e36fa2b479"
        }
    ],
    "removed_objects": [
        {
            "type": "TABLE",
            "name": "c172_text_extract_e36fa2b479"
        }
    ]
}
