Wirespan
What the game sends, and what it never sends.
Wirespan has no accounts and no cookies. Every grid is generated, solved and scored on your own device, and the game plays with the network off. Three things travel, and this page is the whole list of what is in them.
Two of them happen on their own, and the usage data breaker in settings switches both off together: turning it off stops the stream and hides the field readout on the result card. The third is the drop box, which sends nothing until you type a message and press send, and is not on that switch.
What is sent
One anonymous stream, so the game can be improved. It is batched and sent in the background; it never delays a tap, and if it fails nothing about the game changes.
What identifies this browser
deviceIdRandom id for this browser, stored on your device. Not derived from anything about you, your hardware or your network. Clearing site data destroys it permanently
firstGridThe grid number this browser first played, so a returning player is not counted as a new one
sessionIdRandom id for this tab, held in memory only and destroyed when the tab closes
visitDaysHow many separate days this browser has opened the game
How the grid went
archetypeThe shape the grid was dealt as One of: river, delta, canyon, archipelago, radial.
beatRefWhether you beat the engineers
beforePerfectWhether the reference was shown before the grid had been perfected, which is the case that earns the studied mark
bestCountHow many times you beat your own best on this grid
bestMWThe best megawatt reading you reached on this grid
bestTowersHow many towers that best layout used. A count, never the positions
coldMWThe megawatts your first working layout delivered, the reading the card calls the first take
coldTowersHow many towers that first working layout used
drillWhich training-yard drill, where the grid was one
flawlessWhether you got there without ever taking a tower down
gridThe grid number, the same one printed on the card
modeWhich kind of grid was dealt One of: daily, archive, practice, drill.
panelWhich panel was opened One of: help, archive, yard, settings, language, feedback.
perfectWhether you matched the reference grid
phaseWhether you left a grid without placing a tower, or with towers up that never lit every house. A grid you finished reports its result instead One of: untouched, building.
shareOkWhether the handoff landed, by share sheet or clipboard. The share text itself is never sent
streakHow many days your streak stood at
studiedWhether you looked at the reference before perfecting the grid
tierThe rank that reading earned One of: superconductor, master, journeyman, apprentice.
underParWhether the best layout came in under the tower budget
How long things took
gridMsHow long you spent on this grid in total, in milliseconds
queuedMsFor a batch that could not be sent at the time and waited on your device: how long it waited
sentAtMsHow long this session had been active when the batch was sent. It places each event at the moment it happened rather than the moment it arrived, and its largest value is how long the session lasted
solveMsHow long the grid took to light, in milliseconds. Measured to see whether a day was too hard, and never shown to you or anyone else: the game does not grade time
How you got here
campaignA short source tag from the link your first visit arrived on. Either a code on a link Wirespan posted itself, or the utm_source another site tagged its link with. Lowercased, letters/digits/hyphen/underscore, at most sixteen characters โ anything else is refused rather than truncated
referrerHostThe site you arrived from, host only and never the full address. Recorded once, on your first ever visit
How the game itself is doing
batchSeqWhich batch this is within the session, so a duplicate can be discarded
buildWhich build of the game is running
flushWhy this batch was sent One of: manual, full, idle, hidden, pagehide, freeze, optout.
inputKindWhich kind of input first woke the page this session: a tap or click, a mouse move, a key, or a scroll. Sent once per session so an automated page load can be told from a person. What was pressed, or where, is never recorded One of: pointer, move, key, wheel.
localeWhich language the game opened in One of: id-ID, de-DE, en-US, es-419, es-ES, fr-FR, it-IT, nl-NL, pl-PL, pt-BR, vi-VN, tr-TR, hi-IN, th-TH, ja-JP, zh-Hans, zh-Hant, ko-KR.
localeSourceWhether that language came from a choice you made in the game or from your browser's own language setting One of: chosen, browser.
messageThe error's own message, with any address stripped out and capped at 120 characters
payloadVersionWhich version of this format the batch was written in
prefLangThe language your browser asks sites for first, as the two- or three-letter language code alone and never the region โ 'es', never 'es-MX'. It says which languages are worth translating the game into next. Refused rather than truncated if it is not a plain language code
serviceWorkerWhether the offline copy served this launch
settingWhich switch was thrown One of: sound, haptics, motion, contrast, text, usage, language.
settingOnWhere it was thrown to
standaloneWhether the game was opened as an installed app rather than in a browser tab
storageOkWhether the browser allowed the game to save anything
whereWhich kind of failure was caught One of: window, promise.
The field readout
The field readout on the result card is a second, separate flow. When you finish today's grid the game adds one to a set of counters for that grid number, and reads the totals back.
If you go back and beat your own best, the game moves the entry it already sent rather than adding a second one, so the day's total stays a count of how many people played it.
The counters are the whole record: a total, a spread of megawatt readings, and a count per rank and per honour. Nothing is stored per player, so there is no row that is yours and nothing to identify, delete, or rank.
- The grid number
- Your best megawatt reading, and which tenth of the scale it falls in
- The rank it earned
- Whether the grid was perfect, flawless, or beat the engineers
- Which version of the game's scoring the reading is in, so readings in different units are never averaged together
The drop box
Settings holds a drop box: the game's one text input, and the third thing that travels. Nothing goes through it unless you type a message and press send.
It is deliberately not on the usage data breaker. That switch governs collection the game does in the background; a message you wrote and sent is an act, and throwing it away because of a preference about background collection would be the worst outcome available.
A message lands in storage of its own, never in the stream above, so the promise that the stream holds no prose stays a promise about a place prose is never written.
There is a limit of five messages a day from one sender, so the box cannot be used to flood anything.
- The message you typed
- Which of the four kinds you picked, or 'something else' if you picked none
- An email address, only if you typed one, and only so a reply can be sent
- The grid number, the mode and the build you were on. All three are printed in the panel before you press send, so this list is checkable rather than promised
- Nothing else. Not the browser id from the stream above, not the session, not a layout
What is never sent
- Your name, or any account. There are no accounts. The only address the game ever holds is one you typed into the drop box yourself.
- Your location. Your IP address is never stored: the drop box's daily limit counts a one-way hash of it, salted with a secret only this stack holds, and that counter deletes itself after two days.
- Your device fingerprint, your screen size, or your user agent.
- Where your towers went. No layout, on any grid, ever leaves your device.
- Anything you typed, other than a message you wrote in the drop box and sent.
- Any wall-clock time. Durations only, so the moment you played is never recorded.
- Any third party. Nothing in this game contacts anyone but wirespan.app.
How long it is kept
- How long an uploaded batch stays in the form it arrived in. 35 days.
- How long the folded daily record of play is kept. 400 days.
- Counts and totals worked out from it, which name nobody: kept indefinitely.
Those periods are enforced by the storage itself rather than by a job that could quietly stop running.
Your choices
The breaker in settings turns it off at any time. To remove the browser id already stored, clear this site's data in your browser: it is destroyed permanently and a later visit mints a new one.
Under the UK and EU GDPR the browser id counts as personal data, and the legal basis is legitimate interest: knowing whether people come back is what tells me which parts of the game are working. It is not used for advertising, for profiling, or for any automated decision about you, and it is never shared or sold. You can object at any time with the switch, which is the same thing as withdrawing consent.
A message sent through the drop box is different, because you wrote it and pressed send: the basis is your consent, and no switch can un-send it. Ask through the drop box, or write to wirespan@derekp.com, and it is deleted โ the message and the address you gave with it together.