// safe since guaranteed by superclass
final CellBinding arg0Binding = performContext.getPeer().getArg0Binding();
final ScenarioCell arg0Cell = argumentCells.get(0);
final String toRemove = arg0Cell.getText();
final CollectionRemoveFromFacet removeFromFacet = nakedObjectMember.getFacet(CollectionRemoveFromFacet.class);
if (removeFromFacet == null) {
throw ScenarioBoundValueException.current(onMemberBinding, "(cannot remove from collection)");
}
final ObjectAdapter toRemoveAdapter = performContext.getPeer().getAliasRegistry().getAliased(toRemove);
if (toRemoveAdapter == null) {
throw ScenarioBoundValueException.current(arg0Binding, "(unknown alias)");
}
// validate argument
otma.createValidateAddInteractionContext(getSession(), InteractionInvocationMethod.BY_USER, onAdapter, toRemoveAdapter);
final Consent validToRemove = otma.isValidToRemove(onAdapter, toRemoveAdapter);
if (validToRemove.isVetoed()) {
throw ScenarioBoundValueException.current(onMemberBinding, validToRemove.getReason());
}
// remove
removeFromFacet.remove(onAdapter, toRemoveAdapter);
}