Отталкиваясь от примера
Объекты, массивы, строки и числа получают соответствующий type. Вложенные объекты по возможности разворачиваются в properties.
Если массив пуст и нет образца элемента, тип items может быть неточным — добавьте реальный элемент и выведите схему снова.
Как черновик
Автовывод не знает, обязателено ли поле — required нужно править вам. Необязательные поля, enum и format (email, uri) тоже дополняются вручную.
После генерации отдайте схему ajv и подобным инструментам в CI — это надёжнее устных договорённостей.
Локальная генерация
Пример не загружается. Для продакшен-образцов всё равно лучше сначала замаскировать данные.
В выводе есть объявление $schema чтобы другие инструменты узнали версию.