Fitness¶
Ankh-Morpork keeps its records the way it keeps its streets. Somebody adds a new one, nobody tells the people who look after the old ones, and a year later two maps disagree about where the river is. The system pages, the diagram files and the game’s own lists will go the same way unless something reads them against each other every time anything changes. That something is the fitness check, the least popular clerk in the building.
Loose ends¶
The commonest loss is an arrow drawn on a page that never reaches the game. So the check walks every row in every diagram file and wants to find it in the game, or a note saying why it was left out. It counts the loops in each file and wants the list under the diagram to agree. It follows each arrow on the dependencies and triggers pages back to the system page that owns it, or to a cause from outside the city. Remedies travel with their arrows, so a remedy a page draws is a remedy the game offers, and the game offers no other.
Names go astray just as easily. A box with no row in the box list, a decider missing from the list of deciders, an ending watching a box that has since been renamed, a story for a loop that a diagram change removed, a headline for a variable that no longer exists: each stops the check, by name.
Nothing for show¶
The opposite fault is quieter. A variable that no arrow, no odds, no ending and no headline ever reads is decoration, and the check fails on it. So does anything written into the game’s files that the game never uses. Commander Vimes described in loving detail and never once acting fails the check, and he would be the first to agree with it.
How the city behaves¶
Once arrows have numbers, the city has to do what the pages say it does, and the pages have said a good deal. Each loop is tried on its own. Everything outside it is held still and one of its boxes is nudged. A reinforcing loop has to carry the nudge on until a floor, a ceiling or a delay stops it, and a balancing loop has to pull it back. The loops come from the diagram files, so a new diagram brings its trials with it and nobody writes them by hand.
The pages also make claims, and one or two per page are held to them. A pump that stops in the Shades goes unreported for days, while on Nap Hill a butler’s note arrives within the hour. Staged reconnection trips fewer feeders than throwing every switch at once. A thin warehouse and a closed bridge empty the shelves sooner. Pressing for the hospital costs political capital and shortens its outage. Each of these names the page and the sentence it holds to, so an edit that changes the sentence shows which check changes with it.
Luck gets a vote. Where it plays a part, a claim has to hold on most of a fixed set of seeds, say nine games in ten. A claim that holds only when the dice are kind is not one the city makes.
A failing check says where the numbers and the page disagree, and not which of them is wrong. Sometimes a number needs mending, and sometimes the page promised more than the city delivers. A person decides, the same way a person decided which arrow to draw.
The loop trials run with every change. The claims, on many seeds, run with calibration.
Not yet and never¶
Most arrows have no numbers yet. They are part of the city and do nothing in the game, and the check counts them by page and by loop without complaint, since it will be counting them for a while. Loops whose arrows lack numbers cannot be tried yet, and are counted the same way.
Some arrows will never go in, because they belong to something the contract refuses to model, or because their loop is too slow to move even across the run-in and a four-year term together. Each gets a line saying so, and why, so that leaving one out is a decision and not an accident.