<blockquote> Also it would be nice to have wrapped-child to say. Hey
caller I am expecting "var".
</blockquote>
I agree, Jun. But I don't think we should overload ad_page_contract for that purpose. Having ad_page_contract change its behavior based on context sounds like trouble to me.
I vote for a switch. Maybe -form (default), -vars (just check in namespace), and -both (check in both (but in what order?)).