1 - We will have a new user manual released soon that details the Self classes and functions. There is also this FAQ post, https://www.botlibre.com/forum-post?id=14527502
3 - Variables are auto defined, so you do not need to declare them. When you declare them you can add constraints, like the variable will only match instantiation of #number, etc. Without constraints the variable will match any word or object.
The :: is just a typo/left over from our old Self 1.0 syntax. You no longer need to prefix variables with :