The alternative is to re-write the whole list every time (rebase it at zero with sequential numbers). Not a problem if there are only 4 entries, but this might be simplified example.
@splendidkeen if there is no need to view list items on their own, I would ditch your points model and just add a json field to your List model which you can use to store a json object containing your list items.
That way, when you finish your interaction with your list, you just save the list items as an object into that field. You then don't need to worry about current orders or reordering as you can easily do that in js frontend.
Moving items from one list to another is done by a js method to add item to array, and at that point you remove it from the one it was previously in.
If you are making a todo app, then behavior may be even simplier.
For front end, I might use something like SortableJs shared lists http://sortablejs.github.io/Sortable/#shared-lists
Please or to participate in this conversation.