Folks,
A Followup on where this led me.
The final solution is embedded in more complex field definition and handling macros but I provided two methods. Add/Remove and Picklist. The below examples are direct from my macros and includes a range of support variables to automate the use of the macros but I decided to overshare rather than try and build a minimum example. I hope you can extract some useful mechanisms.
Thanks all for your help, at some stage I will try and publish a more generic solution.
A Select one tiddler and add remove buttons
Add member
\define field-add-member(list-field input-filter sort)
<$set name=list-field value="$list-field$" emptyValue="list">
<!-- Removed -[enlist[$list-field$]] from input-filter value to assist setup -->
<$set name=input-filter value="$input-filter$" emptyValue="[each[$list-field$]get[$list-field$]] -[enlist[$list-field$]]">
<$select tiddler="$:/temp/add-item"><$list filter=<<input-filter>> ><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select>
<$button>
<$action-listops $field=<<list-field>> $subfilter="[{$:/temp/add-item}]"/>
<$action-deletetiddler $tiddler="$:/temp/add-item"/>
Add</$button>
<$set><$set>
\end
remove member
\define field-remove-member(list-field input-filter)
<$set name=list-field value="$list-field$" emptyValue="list">
<$set name=input-filter value="$input-filter$" emptyValue="[enlist{!!$list-field$}sort[]]">
<$select tiddler="$:/temp/remove-item"><$list filter=<<input-filter>> ><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select>
<$button>
<$action-listops $field=<<list-field>> $subfilter="-[{$:/temp/remove-item}]"/>
<$action-deletetiddler $tiddler="$:/temp/remove-item"/>
Remove</$button>
<$set><$set>
\end
A Select Multiple and move left and right macro - I call this the picklist method
This version includes a column for drag and drop re-ordering
\define pick-list-membership-and-order(list-field input-filter input-title table-caption rows)
<$set name=input-title value="$input-title$" emptyValue="Select to add">
<$set name=table-caption value="$table-caption$" emptyValue="Select items for $list-field$">
<$set name=rows value="$rows$" emptyValue="15">
<table>
<caption>//Shift to select a range and ctrl to toggle item//</caption>
<tr>
<th><<input-title>></th>
<th>Items to Include</th>
<th></th>
<th>Existing</th>
<th>Order (Drag and Drop)</th>
</tr>
<tr>
<td headers="title" style="vertical-align: top"><$select tiddler="$:/temp/add-items/$list-field$" multiple size=<<rows>> ><$list filter="$input-filter$ -[enlist[$list-field$]]" ><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select></td>
<td headers="items" style="vertical-align: top"><$list filter={{$:/temp/add-items/$list-field$}} > <$view field='title'/><br></$list><br>
<$button>
<$action-setfield $tiddler="$:/temp/add-items/$list-field$" text=""/>
clear
</$button>
</td>
<td headers="arrows" style="vertical-align: top">
<$button tooltip="Add selected to existing List">
<$action-listops $field="$list-field$" $subfilter={{$:/temp/add-items/$list-field$}} />
{{$:/core/images/chevron-right}}
</$button><br>
<$button tooltip="Remove from existing List">
<$action-listops $field="$list-field$" $subfilter={{{ [{$:/temp/remove-items}] +[addprefix[-]] }}} />
{{$:/core/images/chevron-left}}
</$button>
</td>
<td headers="existing" style="vertical-align: top"><$select tiddler="$:/temp/remove-items" multiple size=<<rows>>><$list filter="[enlist{!!$list-field$}sort[]]" ><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select><br>
</td>
<td headers="order" style="vertical-align: top"><$macrocall $name=list-links-draggable tiddler=<<currentTiddler>> field=<<fieldname>>/></td>
</tr>
</table>
<$set><$set><$set>
\end
Regards
Tony