Repository structure

You can make export for any free bot in the Store. Just install it.
It is good for practice.

bot.json file

Please see this

Commands - in commands folder

File name - it is command name (But it can be rewritten in command description)
For commands with "/" (for example command "/start") file name is "_start"
Command can have: name, help, aliases (second names), answer, keyboard, scnarios (for simple logic) and other options.
If the command has a folder - it is located in a folder on the disk with the same name

Command description

It is optional file header:
/*CMD
command: /test
help: this is help for ccommand
need_reply: [ true or false here ]
auto_retry_time: [ time in sec ]
folder: MyFolder
answer: it is example answer for /test command
keyboard: button1, button2
aliases: /test2, /test3
CMD*/
Command description - it is optional block.
multiline also supported. For example for answer:
/*CMD
<<ANSWER
test answer
with several
lines
ANSWER
CMD*/
You can have only answer (or others) key in the command description. All keys - optional
See more

Command body

It is command code in JavaScript. Use Bot Java Script for logic in command.
For example:
Bot.sendMessage(2+2);
See more

Libraries - in libs folder

You can store common code in the libs folder
See more