{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "type" : "object",
  "properties" : {
    "allowDisassembly" : {
      "type" : "boolean",
      "description" : "Whether or not disassembly is permitted"
    },
    "antiVelocityMassRelevance" : {
      "type" : "number",
      "format" : "double",
      "description" : "How much inertia affects Eureka ships. Max 10 = full inertia"
    },
    "ballastNoWeight" : {
      "type" : "number",
      "format" : "double",
      "description" : "Weight of ballast when highest redstone power"
    },
    "ballastWeight" : {
      "type" : "number",
      "format" : "double",
      "description" : "Weight of ballast when lowest redstone power"
    },
    "balloonElevationMaxSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "The max elevation speed boost gained by having extra extra balloons"
    },
    "baseImpulseDescendRate" : {
      "type" : "number",
      "format" : "double",
      "description" : "Vertical sensitivity when descending"
    },
    "baseImpulseElevationRate" : {
      "type" : "number",
      "format" : "double",
      "description" : "Vertical sensitivity when ascending"
    },
    "baseSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "The speed a ship with no engines can move at"
    },
    "blockBlacklist" : {
      "description" : "Blacklist of blocks that don't get assembled (Use Block Tag instead)",
      "type" : "array",
      "items" : {
        "type" : "string",
        "description" : "Blacklist of blocks that don't get assembled (Use Block Tag instead)"
      }
    },
    "diagonals" : {
      "type" : "boolean",
      "description" : "Whether the ship helm assembles diagonally connected blocks or not"
    },
    "doFluidDrag" : {
      "type" : "boolean",
      "description" : "Allow Eureka controlled ships to be affected by fluid drag"
    },
    "elevationSnappiness" : {
      "type" : "number",
      "format" : "double",
      "description" : "Ascend and descend acceleration"
    },
    "engineBoost" : {
      "type" : "number",
      "format" : "double",
      "description" : "Extra engine power for when having multiple engines per engine"
    },
    "engineBoostExponentialPower" : {
      "type" : "number",
      "format" : "double",
      "description" : "The final linear boost will be raised to the power of 2, and the result of the delta is multiple by this value"
    },
    "engineBoostOffset" : {
      "type" : "number",
      "format" : "double",
      "description" : "At what amount of engines the boost will start taking effect"
    },
    "engineFuelMultiplier" : {
      "type" : "number",
      "format" : "float",
      "description" : "Fuel burn time multiplier"
    },
    "engineFuelSaving" : {
      "type" : "boolean",
      "description" : "Avoids consuming fuel when heat is 100%"
    },
    "engineHeatChangeExponent" : {
      "type" : "number",
      "format" : "float",
      "description" : "Increases heat gained at low heat level, and increased heat decreases when at high heat and not consuming fuel"
    },
    "engineHeatGain" : {
      "type" : "number",
      "format" : "float",
      "description" : "The amount of heat a gain per tick (when burning)"
    },
    "engineHeatLoss" : {
      "type" : "number",
      "format" : "float",
      "description" : "The amount of heat a engine loses per tick"
    },
    "engineMinCapacity" : {
      "type" : "integer",
      "format" : "int32",
      "description" : "Increasing this value will result in more items being able to converted to fuel"
    },
    "enginePowerAngular" : {
      "type" : "number",
      "format" : "float",
      "description" : "Turning power per engine when heated fully"
    },
    "enginePowerAngularMin" : {
      "type" : "number",
      "format" : "float",
      "description" : "Turning power per engine when minimal heat"
    },
    "enginePowerLinear" : {
      "type" : "number",
      "format" : "float",
      "description" : "Movement power per engine when heated fully"
    },
    "enginePowerLinearMin" : {
      "type" : "number",
      "format" : "float",
      "description" : "Movement power per engine with minimal heat"
    },
    "engineRedstoneBehaviorPause" : {
      "type" : "boolean",
      "description" : "Pause fuel consumption and power when block is powered"
    },
    "floaterBuoyantFactorPerKg" : {
      "type" : "number",
      "format" : "double",
      "description" : "The amount extra that each floater will make the ship float, per kg mass"
    },
    "linearBaseMass" : {
      "type" : "number",
      "format" : "double",
      "description" : "Base mass for linear acceleration in Kg."
    },
    "linearMassScaling" : {
      "type" : "number",
      "format" : "double",
      "description" : "How fast a ship will stop and accelerate."
    },
    "linearMaxMass" : {
      "type" : "number",
      "format" : "double",
      "description" : "Max smoothing value, will smooth out before reaching max value."
    },
    "linearMaxSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "Max unscaled speed in m/s."
    },
    "linearStabilizeMaxAntiVelocity" : {
      "type" : "number",
      "format" : "double",
      "description" : "How fast a ship will stop. 1 = fast stop, 0 = slow stop"
    },
    "massPerBalloon" : {
      "type" : "number",
      "format" : "double",
      "description" : "Amount of mass in kg a balloon can lift"
    },
    "maxCasualSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "Max speed of a ship without boosting"
    },
    "maxFloaterBuoyantFactor" : {
      "type" : "number",
      "format" : "double",
      "description" : "The maximum amount extra each floater will multiply the buoyant force by, irrespective of mass"
    },
    "maxShipBlocks" : {
      "type" : "integer",
      "format" : "int32",
      "description" : "Maximum number of blocks allowed in a ship. Set to 0 for no limit"
    },
    "maxSizeForTurnSpeedPenalty" : {
      "type" : "number",
      "format" : "double",
      "description" : "The maximum distance from center of mass to one end of the ship considered by the turn speed. At it's default of 16, it ensures that really large ships will turn at the same speed as a ship with a center of mass only 16 blocks away from the farthest point in the ship. That way, large ships do not turn painfully slowly"
    },
    "popSideBalloonChance" : {
      "type" : "number",
      "format" : "double",
      "description" : "Chance for popped balloons to pop adjacent balloons, per side"
    },
    "scaledInstability" : {
      "type" : "number",
      "format" : "double",
      "description" : "Stronger stabilization with higher mass, less at higher speeds."
    },
    "speedMassScale" : {
      "type" : "number",
      "format" : "double",
      "description" : "how much the mass decreases the speed."
    },
    "stabilizationSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "The speed at which the ship stabilizes"
    },
    "stabilizationTorqueConstant" : {
      "type" : "number",
      "format" : "double",
      "description" : "How much torque a ship will apply to try and keep level"
    },
    "turnAcceleration" : {
      "type" : "number",
      "format" : "double",
      "description" : "The maximum linear acceleration at any point on the ship caused by helm torque"
    },
    "turnSpeed" : {
      "type" : "number",
      "format" : "double",
      "description" : "The maximum linear velocity at any point on the ship caused by helm torque"
    },
    "unscaledInstability" : {
      "type" : "number",
      "format" : "double",
      "description" : "Less stabilization at higher speed."
    },
    "$schema" : {
      "type" : "string"
    }
  },
  "additionalProperties" : false
}