Data changed and selection final

This is a continuation from #1414, which was closed with a reversion to commit 4fc3001, the head of the new branch on which this PR is based. #1414 beyond this commit included more radical changes related to adding controllers to replace adapters, and other substantial changes, which will live on in a yet unnamed statecharts-based system.

Work will be done here to polish up, and to re-engineer for anything desirable in the work beyond 4fc3001 on #1414.