-- Silver: the other half of the money, and the half that was being destroyed at every logout.
--
-- ROM keeps two coins on a character, `ch->gold` and `ch->silver`, and this port has both in memory
-- and has only ever had a column for one. Character.Silver reached CharacterMapping nowhere in
-- either direction, so gold survived a relog and silver did not.
--
-- IT WAS LIVE, NOT LATENT. Silver is written by four ordinary paths -- picked up in Money.cs,
-- gained and dropped in ItemVerbs.cs, and left behind by Corpse.cs -- so this was not a column
-- waiting for a feature. Every coin below a gold a player collected was already being thrown away.
--
-- AND IT LANDED HARDEST ON SMALL KILLS. MobFactory splits a mob's wealth at 100 silver to the gold
-- (db.c:2195), so anything carrying less than a gold piece paid ENTIRELY in the currency that did
-- not survive. The character came back looking correct in every respect except the number, and
-- nothing on either side of the save had anything to say about it.
--
-- A COLUMN, NOT A DATA REPAIR, for the same reason 0008_perm_move.sql is: the server WIPES ITS
-- DATABASE AT STARTUP, so no stored character predates this and there is nothing to migrate from.
-- Confirmed with the author on 13 August before writing it. What this has to do is make the column
-- exist when the schema is rebuilt from nothing.
--
-- DEFAULT 0 IS NOT A SENTINEL. A character with no silver has zero silver, which is the same thing
-- a fresh character has, so nothing downstream has to tell "unset" from "none" -- and no C# fallback
-- is needed to protect rows written before this file, because there are none.

ALTER TABLE characters ADD COLUMN silver INTEGER NOT NULL DEFAULT 0;
