Nothing wrong, but I would emphasize that template parameters are intended to interact with the window containing the template, or the canvas/repeater containing the template. Template parameters come from “outside”. You cannot attach bindings to template parameters inside the template–only in the instance in the window. When used In the repeater or canvas, template parameters should follow the rules for that container. Template parameters are also the only direct way to expose data in the template to its container, and only in single instances. However, the assignment inside the template to do so must be scripted.
Internal properties are not visible outside, but can have internal bindings. These are suitable for intermediate calculations, like the indirect tag bindings we’ve been harping on. These internal properties can be used anywhere on the inside of the template. A nested template could bind its template parameters to the outer template’s internal properties (or anything else visible to bindings inside the template).