Shareholders will have a hard time defining precisely what they want until they see the more basic implementations. This can grow into a smart voting system with incredibly complex rules, such that our blockchain becomes a veritable brain of interacting neurons for our organization. But we need to start somewhere.
Frequency voting supplies a framework that can be built from. By adding a second column to the motion vector representing voting frequencies, we provide a framework whereby we can affect a shareholder’s voting preferences in a continuous way. Whether we’re implementing multiple data feeds, default voting, automated personalized voting, or suggestive voting it would be very useful to have this column. Without it, we are left implementing each one of these features separately. All I’m saying is to combine them all into a single die roll that happens just before the mint is done and let the rest happen on the UI end. That way, all the UI has to send out is that array containing [Motions, Probabilities]. Let’s call this the voter array.
So the first step is to implement the voter array as an advanced option, allowing a switch between the current UI and the UI that Creon suggested.
However, I do appreciate your desire to have a plan of attack before we start implementing things willy nilly. I’ll do my best to outline a plan and get shareholder feedback. @sigmike has been very helpful in outlining what that first step would be like, we should try to define some kind of consensus on what we might use it for.
The next step, in my opinion, would be to implement a check box that autofills the motion box. Ideally, it would also display a message stating that default voting is turned on (basic mode) or grey out the frequency box (advanced mode), and starts default voting on motions. If the checkbox is unchecked it will leave the motions in the box and and either display a message like “All motions are being voted for 100%” (basic mode) or set all frequency percentages to 0% (advanced mode).
Eventually, we would have a UI with something like an advanced voting options tab. In that tab we would allows users to select semi-apathetic rules for linear combinations of data feeds and default voting. We could implement many different concepts here, like a suggested voter array tailored to the individual shareholder’s voting history.
Additional feedback would be helpful, but it will require many more conversations in many more threads. That’s why I am trying to pin this particular thread down to the concept of that first step toward Frequency Voting and the voter array.
I’m not super good at c++ and I don’t have a very good concept of the greater picture of the code, so maybe I’m far off base with this. However, as far as I understand object-oriented programming, we should be able to pass a voter array around to different subroutines to craft votes in an intelligent manner.