Root element of all DotBeer documents. Most of the Primary Types (ie ones that have their own schema file) are referred to here. Various Component Types (ie smaller types used for composition) are defined in the “$defs” sections of most of the schema files (apart from this one).
DotBeer is a JSON object with the following properties:
| Property | Required? | Type | Description |
|---|---|---|---|
| version | ✅ | VersionNumber | DotBeer schema version used to create the file. |
| output_by | ✅ | string | Application that wrote the file – eg Brewtarget 5.2.1. |
| timestamp | ✅ | Measurement::Date | Date and time file was created. |
| hops | array of Hop | Records detailing properties of unique hop varieties. | |
| fermentables | array of Fermentable | Records for any ingredient that contributes to the gravity of the beer. | |
| misc_ingredients | array of MiscIngredient | Records for ingredients that area not hops, fermentables or cultures. Variously known as “miscellaneous ingredients”, “non-fermentable adjuncts”, “other ingredients”, or “adjuncts that do not contribute to the gravity of the beer”. | |
| cultures | array of Culture | Records detailing the wide array of unique cultures. | |
| waters | array of Water | Records for water profiles used in brewing. | |
| mashes | array of Mash | Common mashing procedures. | |
| boils | array of Boil | Common boil procedures. | |
| fermentations | array of Fermentation | Common fermentation procedures. | |
| styles | array of Style | Details of judging guidelines for individual beer styles. | |
| equipments | array of Equipment | Provides necessary information for brewing equipment. | |
| recipes | array of Recipe | Records containing a minimal collection of the description of ingredients, procedures and other required parameters necessary to recreate a batch of beer. |
A FolderPath is typically used for the suggested slash-delimited subfolder path in which to store an object. Any leading slash should be ignored. Eg, if an object’s folder path is “/hum/bug” (or “hum/bug”) then importing the object into folder “/foo/bar” should result in its folder path being “/foo/bar/hum/bug”. If the importing software does not support folders, then it should ignore folder path fields.
FolderPath is a string matching regular expression /?[^/]+(/[^/]+)*
We use semantic versioning, which encodes a version by a three-part version number (Major.Minor.Patch)
VersionNumber is a string matching regular expression \d+[.]\d+[.]\d+
Documentation generated from the DotBeer schema (v0.5.0) on 2026-08-21 at 09:19:16+0200.