Вставьте [{"id":1,"label":"one"},{"id":2,"active":true}]. TypeDraft создаст RootItem, отметит label и active необязательными и запишет Root как RootItem[].
Optional означает наблюдаемое отсутствие
Знак вопроса показывает отсутствие ключа в одном объекте, но не доказывает, что контракт сервера разрешает пропуск.
Проверьте объединённый элемент
Подтвердите, что id всегда обязателен, а label и active действительно независимы. Если API использует разные варианты, замените общую optional-форму явным discriminated union.
Сверьте с настоящим контрактом
Скомпилируйте файл и сверьте каждое свойство с документацией API, OpenAPI или JSON Schema. Добавьте отсутствующие поля, исправьте null и optional и применяйте runtime-проверку на недоверенных границах. Храните показательный пример рядом с проверенным типом, чтобы замечать изменения.