So there's a gotcha if you do:
<t:actionlink zone="myzone" t:id="updateMyZone">Click Me</t:actionlink>
<t:zone t:id="secondzone" />
<t:actionlink zone="secondzone" t:id="updateMyZoneASecondTime">Click Me</t:actionlink>
i.e. nested, chained, zones
The catch is that when you specify the zone id to action or event links, the id is the client id, not the tapestry id. But this gets obscured, because since the client id isn't set on the zone, tapestry uses "myzone" for the first zone, and "secondzone_RANDOM" for the id of the nested zone.
Meanwhile, the JSON that is generated for doing the ajax links says:
zoneId = "secondzone";
which then doesn't work because it doesn't match the id on the client side, which has RANDOM appended.
I'm wondering if this change could be used to fix the above?