Исправить имя оператора, не стерев остальные сведения

Фактические данные получены через расширение interbase по TCP к отдельному серверу Firebird с проверкой пароля. Собственные учебные пользователи, базы и промежуточные резервные файлы удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Имя до исправленияMila
Имя после исправленияMia
Пропущенное среднее имя сохраненода
Пропущенная фамилия сохраненада
После явной очистки длина middle_name0
Пустая строка отличается от nullда
Фамилия после очисткиNovak
Тот же логин по-прежнему входитда
Строки и дополнительные наблюдения
{
    "before": {
        "first": "Mila",
        "middle": "K",
        "last": "Novak",
        "plugin": "Srp"
    },
    "after_first_only": {
        "first": "Mia",
        "middle": "K",
        "last": "Novak",
        "plugin": "Srp"
    },
    "after_explicit_empty": {
        "first": "Mia",
        "middle": "",
        "last": "Novak",
        "plugin": "Srp"
    },
    "optional_argument_counts": [
        3,
        1,
        2
    ],
    "service_actions": [
        {
            "started": true,
            "completed": true,
            "output_type": "bool"
        },
        {
            "started": true,
            "completed": true,
            "output_type": "bool"
        }
    ],
    "same_password_supplied_without_publishing_it": true,
    "login_name_changed": false
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.