## Поддержка шаблонов и конфигурации
### Основные секции
```xml
```
### Actions
Action - Это действие пользователя бота, которое бот должен обработать, а также соответсвующая кнопка или inline-кнопка.
```xml
Help
```
`id`, `name` - идентификаторы узла (экшена)
`command` - команда Telegram, должна начинаться со знака "/"
`requestContact="true|false"` - кнопка запроса контактных данных
`requestLocation="true|false"` - кнопка запроса метоположения
содержимое тега - вводимый текст, используется как экранная кнопка
`url` - ссылка для inline-кнопки
`callbackData` - callback данные для inline-кнопки
`callbackDataRegexp` - regexp для обработки callback программным способом
`callbackDataStartWith` - префикс, для обработки callback программным способом
### Screens
Screen - то, что бот ответит пользователю, обычно текст и набор кнопок с действиями. В качестве текста может задаваться шаблон, контекст передается при программной обработке при установленном `TemplateRenderer`
```xml
This is demo bot
```
`mediaRef` - ссылка на элемент медиа, который будет оправлен ботом
`text` - выводимый текст
`keyboard` - описание клавиатуры
### Keyboard
Описание клавиатуры
#### Row
Одна строка кнопок клавиатуры
#### Button
`if` - видимость кнопки, значение `true`, `false` или имя метода из контекста экрана (для программной обработки)
`actionRef` - `id` или `name` action, описанный в соответсвующей секции
Если кнопка не ссылается на action, то можно задать следующие свойства:
`url` - ссылка для inline-кнопки
`callbackData` - callback данные для inline-кнопки
`callbackDataRegexp` - regexp для обработки callback программным способом
`callbackDataStartWith` - префикс, для обработки callback программным способом
### Commands
Простая команда, при совершении `action` будет выведен `screen`. Используется для простых действий, не требующей программной логики.
```xml
```
`actionRef` - ссылка на action, может использоваться id или name
`screenRef` - ссылка на screen, может использоваться id или name
`edit` = `true|false`- исходное сообщение будет отредактировано (актуально для callback)
`replace` = `true|false`- исходное сообщение будет удалено, и отправлено новое (актуально для callback,
если меняется тип сообщения т.е. сообщение с фото, видео должно быть заменено на текстовое и наоборот)
### Media
Описывает медиа-ресурсы, доступные для отправки ботом
```xml
```