Hi Greg
This is something that crops up quite a lot here at Kineo. If you want to have a different start page in your course you can use the adapt-start-controller extension.
You might want to store the user's choice so that they don't have to make the selection again on subsequent visits to the course. If the course will be run from an LMS then you can modify contrib-spoor so that their choice gets stored in the suspend_data along with all the tracking information; if the course won't be running from an LMS you'll need to store that data in a cookie or localStorage instead.
In terms of making the user's choice available to be accessed by other parts of the course (the menu, for example), a good technique is to add it as a 'data' attribute somewhere in the HTML - the 'wrapper' div is what we generally go for - as this means you can retrieve it easily both from JavaScript and CSS.
If you're then hiding menu items based on this choice, don't forget that you might need to make some adjustments to the tracking - especially if you're going to set spoor to '_requireCourseCompleted'. You will need to set the content within any of the hidden menu items to 'optional' so that it doesn't count towards any tracking calculations.
You also need to consider whether you want the user to be allowed modify/reset their initial choice. Not only in terms of how they'd go about doing that but also in terms of how it might affect their tracking i.e. if they've already completed then they change the selection do you leave the course as completed, reset the tracking completely or just require them to complete any new section(s)?