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

deviceId

Random 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

firstGrid

The grid number this browser first played, so a returning player is not counted as a new one

sessionId

Random id for this tab, held in memory only and destroyed when the tab closes

visitDays

How many separate days this browser has opened the game

How the grid went

archetype

The shape the grid was dealt as One of: river, delta, canyon, archipelago, radial.

beatRef

Whether you beat the engineers

beforePerfect

Whether the reference was shown before the grid had been perfected, which is the case that earns the studied mark

bestCount

How many times you beat your own best on this grid

bestMW

The best megawatt reading you reached on this grid

bestTowers

How many towers that best layout used. A count, never the positions

coldMW

The megawatts your first working layout delivered, the reading the card calls the first take

coldTowers

How many towers that first working layout used

drill

Which training-yard drill, where the grid was one

flawless

Whether you got there without ever taking a tower down

grid

The grid number, the same one printed on the card

mode

Which kind of grid was dealt One of: daily, archive, practice, drill.

panel

Which panel was opened One of: help, archive, yard, settings, language, feedback.

perfect

Whether you matched the reference grid

phase

Whether 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.

shareOk

Whether the handoff landed, by share sheet or clipboard. The share text itself is never sent

streak

How many days your streak stood at

studied

Whether you looked at the reference before perfecting the grid

tier

The rank that reading earned One of: superconductor, master, journeyman, apprentice.

underPar

Whether the best layout came in under the tower budget

How long things took

gridMs

How long you spent on this grid in total, in milliseconds

queuedMs

For a batch that could not be sent at the time and waited on your device: how long it waited

sentAtMs

How 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

solveMs

How 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

campaign

A 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

referrerHost

The site you arrived from, host only and never the full address. Recorded once, on your first ever visit

How the game itself is doing

batchSeq

Which batch this is within the session, so a duplicate can be discarded

build

Which build of the game is running

flush

Why this batch was sent One of: manual, full, idle, hidden, pagehide, freeze, optout.

inputKind

Which 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.

locale

Which 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.

localeSource

Whether that language came from a choice you made in the game or from your browser's own language setting One of: chosen, browser.

message

The error's own message, with any address stripped out and capped at 120 characters

payloadVersion

Which version of this format the batch was written in

prefLang

The 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

serviceWorker

Whether the offline copy served this launch

setting

Which switch was thrown One of: sound, haptics, motion, contrast, text, usage, language.

settingOn

Where it was thrown to

standalone

Whether the game was opened as an installed app rather than in a browser tab

storageOk

Whether the browser allowed the game to save anything

where

Which 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 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.

What is never sent

How long it is kept

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.