RuleSource design for repeatedly issuing JavaExec on model space elements

Many thanks to Mark Vieira for sorting out the JavaExec problems (see thread below, if useful):

Now I’m trying to move these item rules out of the main build script and into an external shared build script, but I think doing so somehow changes the type name used to reference the Item elements, or is somehow affecting the ability of gradle to correctly interpret the configured Item elements.

The error message isn’t very helpful, though:

Attempt to read a write only view of model of type 'java.lang.Object' given to rule 'items { ... } @ build.gradle line 14, column 5'

…any suggestions welcome