Hi Ryan,
Thanks for the detailed response. I forgot to mention that I used code from the GMap module as well - I guess that's where I got the formatValue function.
The key part that I didn't understand until your example was the proper way to get a user submitted value. If doing it in formatValue works, then I'll do it from there. If you have a better (i,e. more standardized across other modules) way to do it, then I'd do that instead.
I think I'll stick with fieldType multi because, although my current need doesn't require it, I want to build the module to have the option of tying each vote on a page to the user that cast it. If a user is logged in, it will save their ID, if not it will save it without.
This is obviously so we can prevent users from voting more than once on a specific page. For the non signed-in users, I'll do that with a cookie (not foolproof obviously, but better than nothing).
Again, thanks for the help. I'll post an update here once I've got it to the next stage.