Benjamin,
I don't know how far you're willing to go with this, but...
If we're going to have a "contract" tag it would be good to make it "functional". Right now, there is no enforcement of tcl variable access from the adp. As in, you can declare a variable to be available from the tcl side, but the adp is not limited to the declared vars.
Of course, there should be some indication (switch) that the programmer/designer wants to apply this enforcement, otherwise many things would break.