Using history.replaceState() we can update a plan's URL clientside w/o refresh. And since the plan ID is also parsed clientside, we have a lot of flexibility. (and of course, backwards compatibility for this'd be ez)
I’m interested in pursuing this. We might also try to generate less hostile-looking plan IDs. I originally went for timestamps as a way to keep it all sortable.
Plan URLs are pretty opaque. Just the upload timestamp which isn't too human-friendly.
I've always liked Amazon's URL strategy in this regard.. A product URL will be https://www.amazon.com/Intex-Jump-Castle-Inflatable-Bouncer/dp/B002RXHW6S/ but really they only need https://www.amazon.com/dp/B002RXHW6S/ to show the same thing. The human-readable bit is seemingly discarded. Maybe we can do the same?
Here's one possibility..
http://planscore.org/plan.html?20201217T154558.646435809Z could instead be http://planscore.org/plan.html?n=ga-cd.gpkg-(weighted-by-turnout)&id=20201217T154558.646435809Z
http://planscore.org/plan.html?20210602T011219.957012722Z could instead be http://planscore.org/plan.html?n=nc_2010_congress_2019-11-15_2021-12-31.zip-(2016-votes-old-ACDE-matrix)&id=20210602T011219.957012722Z
Using history.replaceState() we can update a plan's URL clientside w/o refresh. And since the plan ID is also parsed clientside, we have a lot of flexibility. (and of course, backwards compatibility for this'd be ez)