In the long run, we want composable interactions, so that rock-paper-scissors can be the sub-interaction of something bigger. That means that describing interactions MUST NOT depend on a "main" block, but should be described in a function, and/or if a function is not enough, a "module" (in the style of OCaml and with the JavaScript-extending syntax of ReasonML) should encapsulate it.
The syntax issue is minor—the important part is understanding the semantic issue, how it enables composability of interactions, and how it affects their verification.
In the long run, we want composable interactions, so that rock-paper-scissors can be the sub-interaction of something bigger. That means that describing interactions MUST NOT depend on a "main" block, but should be described in a function, and/or if a function is not enough, a "module" (in the style of OCaml and with the JavaScript-extending syntax of ReasonML) should encapsulate it.
The syntax issue is minor—the important part is understanding the semantic issue, how it enables composability of interactions, and how it affects their verification.