Factory signature for SelectionController — the exact shape of
createSelectionController, carried as a DI-overridable symbol so
consumers can swap the selection engine app-wide (telemetry wrappers,
audit logging, server-synced selections, …) without forking any component
that depends on it.