{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "https://raw.githubusercontent.com/beerjson/beerjson/master/json/measureable_units.json",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "VolumeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/VolumeUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "MassType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/MassUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "DiastaticPowerType": {
            "type": "object",
            "description": "Diastatic power is a measurement of malted grains enzymatic content. A value of 35 Lintner is needed to self convert, while a value of 100 or more is desirable for base malts.",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/DiastaticPowerUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "TemperatureType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/TemperatureUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "PressureType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/PressureUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "AcidityType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/AcidityUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "TimeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/TimeUnitType"
                },
                "value": {
                    "type": "integer"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "ColorType": {
            "type": "object",
            "description": "ColorType supports both grain color properties, such as Lovibond, and wort color properties such as SRM and EBC.",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/ColorUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "CarbonationType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/CarbonationUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "BitternessType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/BitternessUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "GravityType": {
            "type": "object",
            "description": "Gravity refers to the both the measurements of percent of sugar content, ie plato and brix, as well as relative density ie specific gravity.",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/GravityUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "SpecificHeatType": {
            "type": "object",
            "description": "Specific heat is the measurement of the amount of heat required to raise a given mass one degree..",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/SpecificHeatUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "ConcentrationType": {
            "type": "object",
            "description": "Examples for concentration include ppm, ppb, and mg/l. ",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/ConcentrationUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "SpecificVolumeType": {
            "type": "object",
            "description": "Specific volume is the inverse of density, with units of volume over mass, ie qt/lb or L/kg. Commonly used for mash thickness.",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/SpecificVolumeUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "UnitType": {
            "type": "object",
            "description": "UnitType is used where unitless amounts are required, such as 1 apple, or 1 yeast packet.",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/UnitUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "CarbonationRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/CarbonationType"
                },
                "maximum": {
                    "$ref": "#/definitions/CarbonationType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "BitternessRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/BitternessType"
                },
                "maximum": {
                    "$ref": "#/definitions/BitternessType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "TemperatureRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/TemperatureType"
                },
                "maximum": {
                    "$ref": "#/definitions/TemperatureType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "ColorRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/ColorType"
                },
                "maximum": {
                    "$ref": "#/definitions/ColorType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "GravityRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/GravityType"
                },
                "maximum": {
                    "$ref": "#/definitions/GravityType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "PercentRangeType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "minimum": {
                    "$ref": "#/definitions/PercentType"
                },
                "maximum": {
                    "$ref": "#/definitions/PercentType"
                }
            },
            "required": [
                "minimum",
                "maximum"
            ]
        },
        "VolumeUnitType": {
            "type": "string",
            "enum": [
                "ml",
                "l",
                "tsp",
                "tbsp",
                "floz",
                "cup",
                "pt",
                "qt",
                "gal",
                "bbl",
                "ifloz",
                "ipt",
                "iqt",
                "igal",
                "ibbl"
            ]
        },
        "MassUnitType": {
            "type": "string",
            "enum": [
                "mg",
                "g",
                "kg",
                "lb",
                "oz"
            ]
        },
        "DiastaticPowerUnitType": {
            "type": "string",
            "enum": [
                "Lintner",
                "WK"
            ]
        },
        "TemperatureUnitType": {
            "type": "string",
            "enum": [
                "C",
                "F"
            ]
        },
        "AcidityUnitType": {
            "type": "string",
            "enum": [
                "pH"
            ]
        },
        "PressureUnitType": {
            "type": "string",
            "enum": [
                "kPa",
                "psi",
                "bar"
            ]
        },
        "TimeUnitType": {
            "type": "string",
            "enum": [
                "sec",
                "min",
                "hr",
                "day",
                "week"
            ]
        },
        "ColorUnitType": {
            "type": "string",
            "enum": [
                "EBC",
                "Lovi",
                "SRM"
            ]
        },
        "CarbonationUnitType": {
            "type": "string",
            "enum": [
                "vols"
            ]
        },
        "BitternessUnitType": {
            "type": "string",
            "enum": [
                "IBUs"
            ]
        },
        "GravityUnitType": {
            "type": "string",
            "enum": [
                "sg",
                "plato",
                "brix"
            ]
        },
        "DensityUnitType": {
            "type": "string",
            "enum": [
                "sg",
                "plato",
                "brix"
            ]
        },
        "ConcentrationUnitType": {
            "type": "string",
            "enum": [
                "ppm",
                "ppb",
                "mg/l"
            ]
        },
        "SpecificHeatUnitType": {
            "type": "string",
            "enum": [
                "Cal/(g C)",
                "J/(kg K)",
                "BTU/(lb F)"
            ]
        },
        "SpecificVolumeUnitType": {
            "type": "string",
            "enum": [
                "qt/lb",
                "gal/lb",
                "gal/oz",
                "l/g",
                "l/kg",
                "floz/oz",
                "m^3/kg",
                "ft^3/lb"
            ]
        },
        "UnitUnitType": {
            "type": "string",
            "enum": [
                "1",
                "unit",
                "each",
                "dimensionless",
                "pkg"
            ]
        },
        "DateType": {
            "type": "string",
            "pattern": "\\d{4}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}"
        },
        "PercentType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "unit": {
                    "$ref": "#/definitions/PercentUnitType"
                },
                "value": {
                    "type": "number"
                }
            },
            "required": [
                "unit",
                "value"
            ]
        },
        "PercentUnitType": {
            "type": "string",
            "enum": [
                "%"
            ]
        },
        "QualitativeRangeType": {
            "type": "string",
            "enum": [
                "very low",
                "low",
                "medium low",
                "medium",
                "medium high",
                "high",
                "very high"
            ]
        },
        "VersionType": {
            "type": "number"
        }
    },
    "properties": {
        "VolumeType": {
            "$ref": "#/definitions/VolumeType"
        },
        "MassType": {
            "$ref": "#/definitions/MassType"
        },
        "DiastaticPowerType": {
            "$ref": "#/definitions/DiastaticPowerType"
        },
        "TemperatureType": {
            "$ref": "#/definitions/TemperatureType"
        },
        "PressureType": {
            "$ref": "#/definitions/PressureType"
        },
        "AcidityType": {
            "$ref": "#/definitions/AcidityType"
        },
        "TimeType": {
            "$ref": "#/definitions/TimeType"
        },
        "ColorType": {
            "$ref": "#/definitions/ColorType"
        },
        "CarbonationType": {
            "$ref": "#/definitions/CarbonationType"
        },
        "BitternessType": {
            "$ref": "#/definitions/BitternessType"
        },
        "GravityType": {
            "$ref": "#/definitions/GravityType"
        },
        "SpecificHeatType": {
            "$ref": "#/definitions/SpecificHeatType"
        },
        "ConcentrationType": {
            "$ref": "#/definitions/ConcentrationType"
        },
        "SpecificVolumeType": {
            "$ref": "#/definitions/SpecificVolumeType"
        },
        "UnitType": {
            "$ref": "#/definitions/UnitType"
        },
        "CarbonationRangeType": {
            "$ref": "#/definitions/CarbonationRangeType"
        },
        "BitternessRangeType": {
            "$ref": "#/definitions/BitternessRangeType"
        },
        "TemperatureRangeType": {
            "$ref": "#/definitions/TemperatureRangeType"
        },
        "ColorRangeType": {
            "$ref": "#/definitions/ColorRangeType"
        },
        "GravityRangeType": {
            "$ref": "#/definitions/GravityRangeType"
        },
        "PercentRangeType": {
            "$ref": "#/definitions/PercentRangeType"
        },
        "VolumeUnitType": {
            "$ref": "#/definitions/VolumeUnitType"
        },
        "MassUnitType": {
            "$ref": "#/definitions/MassUnitType"
        },
        "DiastaticPowerUnitType": {
            "$ref": "#/definitions/DiastaticPowerUnitType"
        },
        "TemperatureUnitType": {
            "$ref": "#/definitions/TemperatureUnitType"
        },
        "AcidityUnitType": {
            "$ref": "#/definitions/AcidityUnitType"
        },
        "PressureUnitType": {
            "$ref": "#/definitions/PressureUnitType"
        },
        "TimeUnitType": {
            "$ref": "#/definitions/TimeUnitType"
        },
        "ColorUnitType": {
            "$ref": "#/definitions/ColorUnitType"
        },
        "CarbonationUnitType": {
            "$ref": "#/definitions/CarbonationUnitType"
        },
        "BitternessUnitType": {
            "$ref": "#/definitions/BitternessUnitType"
        },
        "GravityUnitType": {
            "$ref": "#/definitions/GravityUnitType"
        },
        "DensityUnitType": {
            "$ref": "#/definitions/DensityUnitType"
        },
        "ConcentrationUnitType": {
            "$ref": "#/definitions/ConcentrationUnitType"
        },
        "SpecificHeatUnitType": {
            "$ref": "#/definitions/SpecificHeatUnitType"
        },
        "SpecificVolumeUnitType": {
            "$ref": "#/definitions/SpecificVolumeUnitType"
        },
        "UnitUnitType": {
            "$ref": "#/definitions/UnitUnitType"
        },
        "DateType": {
            "$ref": "#/definitions/DateType"
        },
        "PercentType": {
            "$ref": "#/definitions/PercentType"
        },
        "PercentUnitType": {
            "$ref": "#/definitions/PercentUnitType"
        },
        "QualitativeRangeType": {
            "$ref": "#/definitions/QualitativeRangeType"
        },
        "VersionType": {
            "$ref": "#/definitions/VersionType"
        }
    },
    "required": [
        "VolumeType",
        "MassType",
        "DiastaticPowerType",
        "TemperatureType",
        "PressureType",
        "AcidityType",
        "TimeType",
        "ColorType",
        "CarbonationType",
        "BitternessType",
        "GravityType",
        "SpecificHeatType",
        "ConcentrationType",
        "SpecificVolumeType",
        "UnitType",
        "CarbonationRangeType",
        "BitternessRangeType",
        "TemperatureRangeType",
        "ColorRangeType",
        "GravityRangeType",
        "PercentRangeType",
        "VolumeUnitType",
        "MassUnitType",
        "DiastaticPowerUnitType",
        "TemperatureUnitType",
        "AcidityUnitType",
        "PressureUnitType",
        "TimeUnitType",
        "ColorUnitType",
        "CarbonationUnitType",
        "BitternessUnitType",
        "GravityUnitType",
        "DensityUnitType",
        "ConcentrationUnitType",
        "SpecificHeatUnitType",
        "SpecificVolumeUnitType",
        "UnitUnitType",
        "DateType",
        "PercentType",
        "PercentUnitType",
        "QualitativeRangeType",
        "VersionType"
    ]
}