{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tessera4x.com/mods/schema.json",
  "title": "Tessera4X mod",
  "description": "New names and numbers for the units, buildings, wonders, technologies, civilizations and terrain of Tessera4X.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "format",
    "name"
  ],
  "properties": {
    "format": {
      "const": "tessera4x-mod/1"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "author": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "startEra": {
      "enum": [
        "ancient",
        "classical",
        "medieval",
        "renaissance",
        "industrial",
        "modern"
      ],
      "description": "Every civilization begins knowing every technology of the ages before it, with a grown capital, settlers, workers, an army of the age, gold, and a store of the strategic resources that army needs; the wonders of earlier ages can no longer be raised. Without it, a game begins in the age the player chooses: the ancient one, unless they choose another."
    },
    "victories": {
      "type": "object",
      "additionalProperties": false,
      "description": "false switches a victory off: its wonder can never be raised. Conquest, and the highest score at the final turn, always stand.",
      "properties": {
        "concord": {
          "type": "boolean",
          "description": "The Concord"
        },
        "meridian": {
          "type": "boolean",
          "description": "The Meridian"
        },
        "laurelArch": {
          "type": "boolean",
          "description": "The Laurel Arch"
        }
      }
    },
    "units": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "settler": {
          "$ref": "#/$defs/units1",
          "description": "Settler"
        },
        "warrior": {
          "$ref": "#/$defs/units2",
          "description": "Warrior"
        },
        "scout": {
          "$ref": "#/$defs/units2",
          "description": "Scout"
        },
        "worker": {
          "$ref": "#/$defs/units1",
          "description": "Worker"
        },
        "archer": {
          "$ref": "#/$defs/units3",
          "description": "Archer"
        },
        "spearman": {
          "$ref": "#/$defs/units2",
          "description": "Spearman"
        },
        "horseman": {
          "$ref": "#/$defs/units2",
          "description": "Horseman"
        },
        "swordsman": {
          "$ref": "#/$defs/units2",
          "description": "Swordsman"
        },
        "catapult": {
          "$ref": "#/$defs/units3",
          "description": "Catapult"
        },
        "pikeman": {
          "$ref": "#/$defs/units2",
          "description": "Pikeman"
        },
        "crossbowman": {
          "$ref": "#/$defs/units3",
          "description": "Crossbowman"
        },
        "knight": {
          "$ref": "#/$defs/units2",
          "description": "Knight"
        },
        "longswordsman": {
          "$ref": "#/$defs/units2",
          "description": "Longswordsman"
        },
        "trireme": {
          "$ref": "#/$defs/units2",
          "description": "Trireme"
        },
        "galleass": {
          "$ref": "#/$defs/units3",
          "description": "Galleass"
        },
        "musketman": {
          "$ref": "#/$defs/units2",
          "description": "Musketman"
        },
        "lancer": {
          "$ref": "#/$defs/units2",
          "description": "Lancer"
        },
        "cannon": {
          "$ref": "#/$defs/units3",
          "description": "Cannon"
        },
        "caravel": {
          "$ref": "#/$defs/units2",
          "description": "Caravel"
        },
        "frigate": {
          "$ref": "#/$defs/units3",
          "description": "Frigate"
        },
        "rifleman": {
          "$ref": "#/$defs/units2",
          "description": "Rifleman"
        },
        "cavalry": {
          "$ref": "#/$defs/units2",
          "description": "Cavalry"
        },
        "artillery": {
          "$ref": "#/$defs/units3",
          "description": "Artillery"
        },
        "ironclad": {
          "$ref": "#/$defs/units3",
          "description": "Ironclad"
        },
        "infantry": {
          "$ref": "#/$defs/units2",
          "description": "Infantry"
        },
        "antiTankGun": {
          "$ref": "#/$defs/units2",
          "description": "Anti-Tank Gun"
        },
        "tank": {
          "$ref": "#/$defs/units2",
          "description": "Tank"
        },
        "rocketArtillery": {
          "$ref": "#/$defs/units3",
          "description": "Rocket Artillery"
        },
        "destroyer": {
          "$ref": "#/$defs/units3",
          "description": "Destroyer"
        },
        "battleship": {
          "$ref": "#/$defs/units3",
          "description": "Battleship"
        },
        "fighter": {
          "$ref": "#/$defs/units4",
          "description": "Fighter"
        },
        "bomber": {
          "$ref": "#/$defs/units4",
          "description": "Bomber"
        },
        "greatScientist": {
          "$ref": "#/$defs/units5",
          "description": "Sage"
        },
        "greatMerchant": {
          "$ref": "#/$defs/units5",
          "description": "Magnate"
        },
        "greatArtist": {
          "$ref": "#/$defs/units5",
          "description": "Virtuoso"
        },
        "greatEngineer": {
          "$ref": "#/$defs/units5",
          "description": "Architect"
        },
        "greatGeneral": {
          "$ref": "#/$defs/units5",
          "description": "Marshal"
        },
        "trebuchet": {
          "$ref": "#/$defs/units3",
          "description": "Trebuchet"
        }
      }
    },
    "buildings": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "monument": {
          "$ref": "#/$defs/buildings1",
          "description": "Monument"
        },
        "granary": {
          "$ref": "#/$defs/buildings1",
          "description": "Granary"
        },
        "waterMill": {
          "$ref": "#/$defs/buildings1",
          "description": "Water Mill"
        },
        "library": {
          "$ref": "#/$defs/buildings2",
          "description": "Library"
        },
        "walls": {
          "$ref": "#/$defs/buildings3",
          "description": "Walls"
        },
        "temple": {
          "$ref": "#/$defs/buildings1",
          "description": "Temple"
        },
        "courthouse": {
          "$ref": "#/$defs/buildings1",
          "description": "Courthouse"
        },
        "colosseum": {
          "$ref": "#/$defs/buildings1",
          "description": "Colosseum"
        },
        "bathhouse": {
          "$ref": "#/$defs/buildings1",
          "description": "Bathhouse"
        },
        "market": {
          "$ref": "#/$defs/buildings1",
          "description": "Market"
        },
        "workshop": {
          "$ref": "#/$defs/buildings1",
          "description": "Workshop"
        },
        "university": {
          "$ref": "#/$defs/buildings2",
          "description": "University"
        },
        "castle": {
          "$ref": "#/$defs/buildings3",
          "description": "Castle"
        },
        "harbor": {
          "$ref": "#/$defs/buildings1",
          "description": "Harbor"
        },
        "bank": {
          "$ref": "#/$defs/buildings1",
          "description": "Bank"
        },
        "observatory": {
          "$ref": "#/$defs/buildings2",
          "description": "Observatory"
        },
        "commons": {
          "$ref": "#/$defs/buildings1",
          "description": "Village Green"
        },
        "fairground": {
          "$ref": "#/$defs/buildings1",
          "description": "Fairground"
        },
        "theatre": {
          "$ref": "#/$defs/buildings1",
          "description": "Theatre"
        },
        "almshouse": {
          "$ref": "#/$defs/buildings1",
          "description": "Charity Hall"
        },
        "windmill": {
          "$ref": "#/$defs/buildings1",
          "description": "Windmill"
        },
        "seaport": {
          "$ref": "#/$defs/buildings1",
          "description": "Seaport"
        },
        "factory": {
          "$ref": "#/$defs/buildings1",
          "description": "Factory"
        },
        "publicSchool": {
          "$ref": "#/$defs/buildings2",
          "description": "Public School"
        },
        "museum": {
          "$ref": "#/$defs/buildings1",
          "description": "Museum"
        },
        "hospital": {
          "$ref": "#/$defs/buildings1",
          "description": "Hospital"
        },
        "publicGardens": {
          "$ref": "#/$defs/buildings1",
          "description": "Public Gardens"
        },
        "basilica": {
          "$ref": "#/$defs/buildings1",
          "description": "Basilica"
        },
        "nilometer": {
          "$ref": "#/$defs/buildings1",
          "description": "Floodmark"
        },
        "palaestra": {
          "$ref": "#/$defs/buildings1",
          "description": "Gymnasium"
        },
        "ishtarGate": {
          "$ref": "#/$defs/buildings3",
          "description": "Ishtar Gate"
        },
        "teahouse": {
          "$ref": "#/$defs/buildings1",
          "description": "Teahouse"
        },
        "salon": {
          "$ref": "#/$defs/buildings1",
          "description": "Literary Salon"
        },
        "stockExchange": {
          "$ref": "#/$defs/buildings1",
          "description": "Stock Exchange"
        },
        "broadcastTower": {
          "$ref": "#/$defs/buildings1",
          "description": "Broadcast Tower"
        },
        "militaryBase": {
          "$ref": "#/$defs/buildings3",
          "description": "Military Base"
        }
      }
    },
    "wonders": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "stonehenge": {
          "$ref": "#/$defs/wonders1",
          "description": "Stonehenge"
        },
        "templeOfArtemis": {
          "$ref": "#/$defs/wonders1",
          "description": "Temple of Artemis"
        },
        "pyramids": {
          "$ref": "#/$defs/wonders1",
          "description": "Pyramids"
        },
        "greatLibrary": {
          "$ref": "#/$defs/wonders1",
          "description": "Great Library"
        },
        "colossus": {
          "$ref": "#/$defs/wonders1",
          "description": "Colossus"
        },
        "hangingGardens": {
          "$ref": "#/$defs/wonders1",
          "description": "Hanging Gardens"
        },
        "pontDuGard": {
          "$ref": "#/$defs/wonders1",
          "description": "The Great Aqueduct"
        },
        "notreDame": {
          "$ref": "#/$defs/wonders1",
          "description": "Notre Dame"
        },
        "grandBazaar": {
          "$ref": "#/$defs/wonders1",
          "description": "The Grand Bazaar"
        },
        "machuPicchu": {
          "$ref": "#/$defs/wonders1",
          "description": "Machu Picchu"
        },
        "tajMahal": {
          "$ref": "#/$defs/wonders1",
          "description": "Taj Mahal"
        },
        "sistineChapel": {
          "$ref": "#/$defs/wonders1",
          "description": "Sistine Chapel"
        },
        "forbiddenPalace": {
          "$ref": "#/$defs/wonders1",
          "description": "Forbidden Palace"
        },
        "sanssouci": {
          "$ref": "#/$defs/wonders1",
          "description": "The Summer Palace"
        },
        "bigBen": {
          "$ref": "#/$defs/wonders1",
          "description": "Big Ben"
        },
        "brandenburgGate": {
          "$ref": "#/$defs/wonders1",
          "description": "Brandenburg Gate"
        },
        "eiffelTower": {
          "$ref": "#/$defs/wonders1",
          "description": "Eiffel Tower"
        },
        "statueOfLiberty": {
          "$ref": "#/$defs/wonders1",
          "description": "Statue of Liberty"
        },
        "concord": {
          "$ref": "#/$defs/wonders1",
          "description": "The Concord"
        },
        "meridian": {
          "$ref": "#/$defs/wonders1",
          "description": "The Meridian"
        },
        "laurelArch": {
          "$ref": "#/$defs/wonders1",
          "description": "The Laurel Arch"
        }
      }
    },
    "techs": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "agriculture": {
          "$ref": "#/$defs/techs1",
          "description": "Agriculture"
        },
        "pottery": {
          "$ref": "#/$defs/techs1",
          "description": "Pottery"
        },
        "animalHusbandry": {
          "$ref": "#/$defs/techs1",
          "description": "Animal Husbandry"
        },
        "archery": {
          "$ref": "#/$defs/techs1",
          "description": "Archery"
        },
        "mining": {
          "$ref": "#/$defs/techs1",
          "description": "Mining"
        },
        "sailing": {
          "$ref": "#/$defs/techs1",
          "description": "Sailing"
        },
        "calendar": {
          "$ref": "#/$defs/techs1",
          "description": "Calendar"
        },
        "writing": {
          "$ref": "#/$defs/techs1",
          "description": "Writing"
        },
        "trapping": {
          "$ref": "#/$defs/techs1",
          "description": "Trapping"
        },
        "theWheel": {
          "$ref": "#/$defs/techs1",
          "description": "The Wheel"
        },
        "masonry": {
          "$ref": "#/$defs/techs1",
          "description": "Masonry"
        },
        "bronzeWorking": {
          "$ref": "#/$defs/techs1",
          "description": "Bronze Working"
        },
        "optics": {
          "$ref": "#/$defs/techs1",
          "description": "Optics"
        },
        "philosophy": {
          "$ref": "#/$defs/techs1",
          "description": "Philosophy"
        },
        "horsebackRiding": {
          "$ref": "#/$defs/techs1",
          "description": "Horseback Riding"
        },
        "mathematics": {
          "$ref": "#/$defs/techs1",
          "description": "Mathematics"
        },
        "construction": {
          "$ref": "#/$defs/techs1",
          "description": "Construction"
        },
        "ironWorking": {
          "$ref": "#/$defs/techs1",
          "description": "Iron Working"
        },
        "compass": {
          "$ref": "#/$defs/techs1",
          "description": "Compass"
        },
        "theology": {
          "$ref": "#/$defs/techs1",
          "description": "Theology"
        },
        "education": {
          "$ref": "#/$defs/techs1",
          "description": "Education"
        },
        "civilService": {
          "$ref": "#/$defs/techs1",
          "description": "Civil Service"
        },
        "chivalry": {
          "$ref": "#/$defs/techs1",
          "description": "Chivalry"
        },
        "currency": {
          "$ref": "#/$defs/techs1",
          "description": "Currency"
        },
        "machinery": {
          "$ref": "#/$defs/techs1",
          "description": "Machinery"
        },
        "engineering": {
          "$ref": "#/$defs/techs1",
          "description": "Engineering"
        },
        "physics": {
          "$ref": "#/$defs/techs1",
          "description": "Physics"
        },
        "steel": {
          "$ref": "#/$defs/techs1",
          "description": "Steel"
        },
        "astronomy": {
          "$ref": "#/$defs/techs1",
          "description": "Astronomy"
        },
        "banking": {
          "$ref": "#/$defs/techs1",
          "description": "Banking"
        },
        "printingPress": {
          "$ref": "#/$defs/techs1",
          "description": "Printing Press"
        },
        "gunpowder": {
          "$ref": "#/$defs/techs1",
          "description": "Gunpowder"
        },
        "navigation": {
          "$ref": "#/$defs/techs1",
          "description": "Navigation"
        },
        "economics": {
          "$ref": "#/$defs/techs1",
          "description": "Economics"
        },
        "chemistry": {
          "$ref": "#/$defs/techs1",
          "description": "Chemistry"
        },
        "metallurgy": {
          "$ref": "#/$defs/techs1",
          "description": "Metallurgy"
        },
        "scientificTheory": {
          "$ref": "#/$defs/techs1",
          "description": "Scientific Theory"
        },
        "militaryScience": {
          "$ref": "#/$defs/techs1",
          "description": "Military Science"
        },
        "archaeology": {
          "$ref": "#/$defs/techs1",
          "description": "Archaeology"
        },
        "rifling": {
          "$ref": "#/$defs/techs1",
          "description": "Rifling"
        },
        "biology": {
          "$ref": "#/$defs/techs1",
          "description": "Biology"
        },
        "steamPower": {
          "$ref": "#/$defs/techs1",
          "description": "Steam Power"
        },
        "dynamite": {
          "$ref": "#/$defs/techs1",
          "description": "Dynamite"
        },
        "railroads": {
          "$ref": "#/$defs/techs1",
          "description": "Railroads"
        },
        "electricity": {
          "$ref": "#/$defs/techs1",
          "description": "Electricity"
        },
        "replaceableParts": {
          "$ref": "#/$defs/techs1",
          "description": "Replaceable Parts"
        },
        "radio": {
          "$ref": "#/$defs/techs1",
          "description": "Radio"
        },
        "combustion": {
          "$ref": "#/$defs/techs1",
          "description": "Combustion"
        },
        "flight": {
          "$ref": "#/$defs/techs1",
          "description": "Flight"
        },
        "radar": {
          "$ref": "#/$defs/techs1",
          "description": "Radar"
        },
        "rocketry": {
          "$ref": "#/$defs/techs1",
          "description": "Rocketry"
        },
        "satellites": {
          "$ref": "#/$defs/techs1",
          "description": "Satellites"
        }
      }
    },
    "civs": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "rome": {
          "$ref": "#/$defs/civs1",
          "description": "Rome"
        },
        "egypt": {
          "$ref": "#/$defs/civs1",
          "description": "Egypt"
        },
        "greece": {
          "$ref": "#/$defs/civs1",
          "description": "Greece"
        },
        "babylon": {
          "$ref": "#/$defs/civs1",
          "description": "Babylon"
        },
        "china": {
          "$ref": "#/$defs/civs1",
          "description": "China"
        },
        "france": {
          "$ref": "#/$defs/civs1",
          "description": "France"
        }
      }
    },
    "terrain": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "ocean": {
          "$ref": "#/$defs/terrain1",
          "description": "Ocean"
        },
        "coast": {
          "$ref": "#/$defs/terrain1",
          "description": "Coast"
        },
        "grassland": {
          "$ref": "#/$defs/terrain1",
          "description": "Grassland"
        },
        "plains": {
          "$ref": "#/$defs/terrain1",
          "description": "Plains"
        },
        "desert": {
          "$ref": "#/$defs/terrain1",
          "description": "Desert"
        },
        "tundra": {
          "$ref": "#/$defs/terrain1",
          "description": "Tundra"
        },
        "snow": {
          "$ref": "#/$defs/terrain1",
          "description": "Snow"
        },
        "hills": {
          "$ref": "#/$defs/terrain1",
          "description": "Hills"
        },
        "mountains": {
          "$ref": "#/$defs/terrain1",
          "description": "Mountains"
        }
      }
    },
    "features": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "forest": {
          "$ref": "#/$defs/features1",
          "description": "Forest"
        },
        "jungle": {
          "$ref": "#/$defs/features1",
          "description": "Jungle"
        },
        "marsh": {
          "$ref": "#/$defs/features1",
          "description": "Marsh"
        },
        "floodplains": {
          "$ref": "#/$defs/features1",
          "description": "Flood plains"
        },
        "oasis": {
          "$ref": "#/$defs/features1",
          "description": "Oasis"
        }
      }
    }
  },
  "$defs": {
    "units1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "moves": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Movement points each turn."
        },
        "sight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6,
          "description": "How many tiles away it sees."
        }
      }
    },
    "units2": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "moves": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Movement points each turn."
        },
        "sight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6,
          "description": "How many tiles away it sees."
        },
        "strength": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "Combat strength: how hard it hits up close, and how well it defends."
        },
        "bonusVsCities": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength when it attacks a city."
        },
        "bonusVsMounted": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength against mounted units."
        }
      }
    },
    "units3": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "moves": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Movement points each turn."
        },
        "sight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6,
          "description": "How many tiles away it sees."
        },
        "strength": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "Combat strength: how hard it hits up close, and how well it defends."
        },
        "rangedStrength": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "How hard it hits from a distance."
        },
        "range": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "How many tiles away it can shoot (up to 12 for aircraft)."
        },
        "bonusVsCities": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength when it attacks a city."
        },
        "bonusVsMounted": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength against mounted units."
        }
      }
    },
    "units4": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "sight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6,
          "description": "How many tiles away it sees."
        },
        "strength": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "Combat strength: how hard it hits up close, and how well it defends."
        },
        "rangedStrength": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "How hard it hits from a distance."
        },
        "range": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12,
          "description": "How many tiles away it can shoot (up to 12 for aircraft)."
        },
        "bonusVsCities": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength when it attacks a city."
        },
        "bonusVsMounted": {
          "type": "integer",
          "minimum": 0,
          "maximum": 300,
          "description": "Percent added to its strength against mounted units."
        }
      }
    },
    "units5": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "moves": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Movement points each turn."
        },
        "sight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6,
          "description": "How many tiles away it sees."
        }
      }
    },
    "buildings1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "maintenance": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Gold a turn to keep it."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "production": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "gold": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            }
          },
          "description": "Food, production and gold it adds to its city each turn."
        },
        "culture": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Culture a turn."
        },
        "happiness": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Contentment it adds."
        }
      }
    },
    "buildings2": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "maintenance": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Gold a turn to keep it."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "production": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "gold": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            }
          },
          "description": "Food, production and gold it adds to its city each turn."
        },
        "culture": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Culture a turn."
        },
        "happiness": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Contentment it adds."
        },
        "sciencePerCitizens": {
          "type": "integer",
          "minimum": 1,
          "maximum": 20,
          "description": "One science a turn for every this many citizens of its city."
        }
      }
    },
    "buildings3": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5000,
          "description": "Production to build it, at Standard speed."
        },
        "maintenance": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Gold a turn to keep it."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "production": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "gold": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            }
          },
          "description": "Food, production and gold it adds to its city each turn."
        },
        "culture": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Culture a turn."
        },
        "happiness": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Contentment it adds."
        },
        "defenceBonus": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300,
          "description": "Percent added to its city’s defence."
        }
      }
    },
    "wonders1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000,
          "description": "Production to build it, at Standard speed."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "production": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "gold": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            }
          },
          "description": "Food, production and gold it adds to its city each turn."
        },
        "culture": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Culture a turn."
        },
        "happiness": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "description": "Contentment it adds."
        }
      }
    },
    "techs1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "What it is called."
        },
        "blurb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The sentence players read about it. Left out, the game’s own is kept, with your numbers and names written in."
        },
        "cost": {
          "type": "integer",
          "minimum": 1,
          "maximum": 20000,
          "description": "Science to research it, at Standard speed."
        }
      }
    },
    "civs1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 24,
          "description": "The civilization’s name."
        },
        "leader": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32,
          "description": "Its leader, the name its rivals know it by."
        },
        "cityNames": {
          "type": "array",
          "minItems": 1,
          "maxItems": 60,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 24
          },
          "description": "City names, in the order its cities take them."
        }
      }
    },
    "terrain1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 24,
          "description": "What it is called."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10
            },
            "production": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10
            },
            "gold": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10
            }
          },
          "description": "Food, production and gold the tile gives before any improvement."
        }
      }
    },
    "features1": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 24,
          "description": "What it is called."
        },
        "yields": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "food": {
              "type": "integer",
              "minimum": -5,
              "maximum": 10
            },
            "production": {
              "type": "integer",
              "minimum": -5,
              "maximum": 10
            },
            "gold": {
              "type": "integer",
              "minimum": -5,
              "maximum": 10
            }
          },
          "description": "Added to the yields of the terrain beneath."
        }
      }
    }
  }
}
