{
	"$schema": "http://json-schema.org/draft-06/schema",
	"additionalProperties": false,
	"definitions": {
		"color": {
			"$id": "#color",
			"description": "\n1. If `integer`, it is the index of the internal color list\n2. If `array`, two to five numbers in the range of 0–255 denoting a Grey+A, RGBA or CMYKA values",
			"type": ["integer", "array"]
		},
		"customParameters": {
			"$id": "#customParameters",
			"additionalItems": true,
			"default": [],
			"description": "An explanation about the purpose of this instance.",
			"items": {
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"disabled": {
						"default": 0,
						"description": "The parameter will be ignored. Always set to `1`, otherwise omit the key.",
						"title": "The disabled schema",
						"type": "integer"
					},
					"name": {
						"description": "Property name of the custom parameter.",
						"title": "The name schema",
						"type": "string"
					},
					"value": {
						"description": "Value of the custom parameters.",
						"title": "The value schema",
						"type": ["array", "number", "object", "string"]
					}
				},
				"required": [
					"name",
					"value"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The customParameters schema",
			"type": "array"
		},
		"guides": {
			"$id": "#guides",
			"additionalItems": true,
			"description": "An explanation about the purpose of this instance.",
			"items": {
				"$id": "#guides/items",
				"additionalProperties": false,
				"properties": {
					"angle": {
						"$id": "#/guides/items/properties/angle",
						"default": 0,
						"description": "An explanation about the purpose of this instance.",
						"title": "The angle schema",
						"type": "number"
					},
					"filter": {
						"$ref": "#filter"
					},
					"lockAngle": {
						"$id": "#/guides/items/properties/lockAngle",
						"default": 0,
						"description": "Always set to `1`, otherwise omit the key",
						"type": ["integer", "boolean"]
					},
					"locked": {
						"$id": "#/guides/items/properties/locked",
						"default": 0,
						"description": "Always set to `1`, otherwise omit the key",
						"type": ["integer", "boolean"]
					},
					"name": {
						"$id": "#/guides/items/properties/name",
						"description": "An explanation about the purpose of this instance.",
						"title": "The name schema",
						"type": "string"
					},
					"orientation": {
						"$id": "#/guides/items/properties/orientation",
						"description": "Orientation means that the item can be attached to the Right or the Center of the layer. So if you change the RSB, it moves along",
						"enum": ["center", "right"],
						"title": "The orientation schema",
						"type": "string"
					},
					"pos": {
						"$ref": "#/definitions/pos"
					},
					"showMeasurement": {
						"$id": "#/guides/items/properties/showMeasurement",
						"default": 0,
						"type": ["boolean", "integer"]
					},
					"userData": {
						"$ref": "#/definitions/userData"
					}
				},
				"type": "object"
			},
			"title": "The guides schema",
			"type": "array"
		},
		"filter": {
			"$id": "#filter",
			"description": "A predicate format string [(Apple Predicate Programming Guide)](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Predicates/AdditionalChapters/Introduction.html#//apple_ref/doc/uid/TP40001789) (e.g. `\"case == 3\"` (No Case = 0, Uppercase = 1, Lowercase = 2, Smallcaps = 3, Other = 4))",
			"title": "The filter schema",
			"type": "string"
		},
		"kerning": {
			"$id": "#kerning",
			"description": "An explanation about the purpose of this instance.",
			"title": "The kerningLTR schema",
			"type": "object"
		},
		"pos": {
			"$id": "#pos",
			"additionalItems": false,
			"description": "store a position with a X and Y coordinate",
			"items": {
				"$id": "#pos/items",
				"type": "number"
			},
			"maxItems": 2,
			"minItems": 2,
			"title": "The pos schema",
			"type": "array"
		},
		"properties": {
			"$id": "#properties",
			"additionalItems": true,
			"description": "see [Properties](#properties)",
			"items": {
				"additionalProperties": false,
				"properties": {
					"key": {
						"$id": "#/properties/items/properties/key",
						"description": "property key. One of the following. Keys ending with \"s\" are localizable that means the second key is `values`, otherwise `value`.",
						"title": "The key schema",
						"type": "string"
					},
					"value": {
						"$id": "#/properties/items/properties/values",
						"description": "A single value",
						"title": "The values schema",
						"type": "string"
					},
					"values": {
						"$id": "#/properties/items/properties/values",
						"additionalItems": true,
						"description": "A list of localized values",
						"items": {
							"$id": "#/properties/properties/items/properties/values/items",
							"additionalProperties": false,
							"description": "An explanation about the purpose of this instance.",
							"properties": {
								"language": {
									"$id": "#/properties/properties/items/properties/values/items/properties/language",
									"description": "An explanation about the purpose of this instance.",
									"title": "The language schema",
									"type": "string"
								},
								"value": {
									"$id": "#/properties/properties/items/properties/values/items/properties/value",
									"description": "An explanation about the purpose of this instance.",
									"title": "The value schema",
									"type": "string"
								}
							},
							"required": [
								"language",
								"value"
							],
							"title": "The items schema",
							"type": "object"
						},
						"title": "The values schema",
						"type": "array"
					}
				},
				"required": [
					"key"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The properties schema",
			"type": "array"
		},
		"scale": {
			"$id": "#scale",
			"additionalItems": false,
			"description": "store a horizontal and vertical scale",
			"items": {
				"$id": "#scale/items",
				"type": "number"
			},
			"maxItems": 2,
			"minItems": 2,
			"title": "The pos schema",
			"type": "array"
		},
		"userData": {
			"$id": "#userData",
			"additionalProperties": true,
			"description": "to store custom data. Only `string`, `int`, `float`, `array`, `dict` and `date` data is allowed.",
			"title": "The userData schema",
			"type": "object"
		}
	},
	"description": "The root schema comprises the entire JSON document.",
	"id": "root",
	"properties": {
		".appVersion": {
			"$id": "#/properties/.appVersion",
			"description": "The build number of the app. (e.g. `\"3023\"`)",
			"title": "The .appVersion schema",
			"type": "string"
		},
		".formatVersion": {
			"$id": "#/properties/.formatVersion",
			"description": "Set to `3` for version 3. If that key is missing assume version 2.",
			"title": "The .formatVersion schema",
			"type": "integer"
		},
		".storedFormatVersion": {
			"$id": "#/properties/.storedFormatVersion",
			"description": "This is only present in autosave files",
			"title": "The .storedFormatVersion schema",
			"type": "integer"
		},
		"axes": {
			"$id": "#/properties/axes",
			"additionalItems": true,
			"description": "The interpolation axes",
			"items": {
				"$id": "#/properties/axes/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"hidden": {
						"$id": "#/properties/axes/items/properties/hidden",
						"default": 0,
						"description": "If the axis should be visible in the UI. Always set to `1`, otherwise omit the key",
						"title": "The hidden schema",
						"type": ["boolean", "integer"]
					},
					"name": {
						"$id": "#/properties/axes/items/properties/name",
						"description": "The name of the axis (e.g. `Weight`)",
						"title": "The name schema",
						"type": "string"
					},
					"tag": {
						"$id": "#/properties/axes/items/properties/tag",
						"description": "The axis tag (e.g. `wght`)",
						"title": "The tag schema",
						"type": "string"
					}
				},
				"required": [
					"name",
					"tag"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The axes schema",
			"type": "array"
		},
		"classes": {
			"$id": "#/properties/classes",
			"additionalItems": true,
			"description": "OpenType classes.",
			"items": {
				"$id": "#/properties/classes/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"automatic": {
						"$id": "#/properties/classes/items/properties/automatic",
						"default": 0,
						"description": "Always set to `1`. If the feature is not set to automatic, the key should be omitted.",
						"title": "The automatic schema",
						"type": ["boolean", "integer"]
					},
					"code": {
						"$id": "#/properties/classes/items/properties/code",
						"description": "A string containing space separated glyph names.",
						"title": "The code schema",
						"type": "string"
					},
					"disabled": {
						"$id": "#/properties/classes/items/properties/disabled",
						"default": 0,
						"description": "The class will not be exported. Always set to `1`, otherwise omit the key",
						"title": "The automatic schema",
						"type": ["boolean", "integer"]
					},
					"name": {
						"$id": "#/properties/classes/items/properties/name",
						"description": "The OpenType class name. Don’t add an `@`.",
						"title": "The name schema",
						"type": "string"
					},
					"notes": {
						"$id": "#/properties/classes/items/properties/notes",
						"description": "Notes",
						"title": "The notes schema",
						"type": "string"
					}
				},
				"required": [
					"code",
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The classes schema",
			"type": "array"
		},
		"customParameters": {
			"$ref": "#/definitions/customParameters"
		},
		"date": {
			"$id": "#/properties/date",
			"description": "Format `2014-01-29 14:14:38 +0000`",
			"title": "The date schema",
			"type": "string"
		},
		"DisplayStrings": {
			"$id": "#/properties/DisplayStrings",
			"additionalItems": true,
			"description": "The text of all open tabs",
			"items": {
				"$id": "#/properties/DisplayStrings/items",
				"description": "An explanation about the purpose of this instance.",
				"title": "The items schema",
				"type": "string"
			},
			"title": "The DisplayStrings schema",
			"type": "array"
		},
		"familyName": {
			"$id": "#/properties/familyName",
			"description": "The default family name",
			"title": "The familyName schema",
			"type": "string"
		},
		"featurePrefixes": {
			"$id": "#/properties/featurePrefixes",
			"additionalItems": true,
			"description": "OpenType feature code before the class definitions.",
			"items": {
				"$id": "#/properties/featurePrefixes/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"automatic": {
						"$id": "#/properties/featurePrefixes/items/properties/automatic",
						"description": "Always set to `1`, otherwise omit the key",
						"title": "The automatic schema",
						"type": ["integer", "boolean"]
					},
					"code": {
						"$id": "#/properties/featurePrefixes/items/properties/code",
						"description": "A string containing feature code.",
						"title": "The code schema",
						"type": "string"
					},
					"disabled": {
						"$id": "#/properties/featurePrefixes/items/properties/disabled",
						"default": 0,
						"description": "The prefix will not be exported. Always set to `1`, otherwise omit the key",
						"title": "The automatic schema",
						"type": ["boolean", "integer"]
					},
					"name": {
						"$id": "#/properties/featurePrefixes/items/properties/name",
						"description": "The name of the prefix",
						"title": "The name schema",
						"type": "string"
					},
					"notes": {
						"$id": "#/properties/classes/items/properties/notes",
						"description": "Notes",
						"title": "The notes schema",
						"type": "string"
					}
				},
				"required": [
					"code",
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The featurePrefixes schema",
			"type": "array"
		},
		"features": {
			"$id": "#/properties/features",
			"additionalItems": true,
			"default": [],
			"description": "An explanation about the purpose of this instance.",
			"items": {
				"$id": "#/properties/features/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"automatic": {
						"$id": "#/properties/features/items/properties/automatic",
						"default": 0,
						"description": "Always set to `1`, otherwise omit the key",
						"title": "The automatic schema",
						"type": ["integer", "boolean"]
					},
					"code": {
						"$id": "#/properties/features/items/properties/code",
						"description": "A string containing feature code.",
						"title": "The code schema",
						"type": "string"
					},
					"disabled": {
						"$id": "#/properties/featurePrefixes/items/properties/disabled",
						"default": 0,
						"description": "The feature will not be exported. Always set to `1`, otherwise omit the key",
						"title": "The automatic schema",
						"type": ["boolean", "integer"]
					},
					"labels": {
						"$id": "#/properties/features/items/properties/labels",
						"description": "An explanation about the purpose of this instance.",
						"items": {
							"$id": "#/properties/features/items/properties/labels/items",
							"description": "An explanation about the purpose of this instance.",
							"properties": {
								"language": {
									"description": "An explanation about the purpose of this instance.",
									"title": "The language tag or 'dflt'",
									"type": "string"
								},
								"value": {
									"type": "string"
								}
							},
							"required": [
								"language",
								"value"
							],
							"title": "The items schema",
							"type": "object"
						},
						"title": "The labels schema",
						"type": "array"
					},
					"notes": {
						"$id": "#/properties/features/items/properties/notes",
						"description": "Notes",
						"title": "The notes schema",
						"type": "string"
					},
					"tag": {
						"$id": "#/properties/features/items/properties/tag",
						"description": "An explanation about the purpose of this instance.",
						"title": "The tag schema",
						"type": "string"
					}
				},
				"required": [
					"code",
					"tag"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The features schema",
			"type": "array"
		},
		"fontMaster": {
			"$id": "#/properties/fontMaster",
			"additionalItems": true,
			"description": "The fontMaster object",
			"items": {
				"$id": "#/properties/fontMaster/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"axesValues": {
						"$id": "#/properties/fontMaster/items/properties/axesValues",
						"additionalItems": true,
						"default": [],
						"description": "a list of float values storing the axis coordinate for each axis, Axis settings are stored in the font object.",
						"items": {
							"$id": "#/properties/fontMaster/items/properties/axesValues/items",
							"type": "number"
						},
						"title": "The axesValues schema",
						"type": "array"
					},
					"customParameters": {
						"$ref": "#/definitions/customParameters"
					},
					"guides": {
						"$ref": "#/definitions/guides"
					},
					"iconName": {
						"$id": "#/properties/fontMaster/items/properties/iconName",
						"description": "The selected master icon",
						"title": "The iconName schema",
						"type": "string"
					},
					"id": {
						"$id": "#/properties/fontMaster/items/properties/id",
						"description": "a unique id that connects the layers (associated ID) with the master.",
						"title": "The id schema",
						"type": "string"
					},
					"metricValues": {
						"$id": "#/properties/fontMaster/items/properties/metricValues",
						"additionalItems": true,
						"description": "the metrics values, metrics settings are stored in the font object. Corresponds to `font.metrics`",
						"items": {
							"$id": "#/properties/fontMaster/items/properties/metricValues/items",
							"additionalProperties": false,
							"properties": {
								"over": {
									"$id": "#/properties/fontMaster/items/properties/metricValues/items/properties/over",
									"description": "the overshot",
									"title": "The over schema",
									"type": "number"
								},
								"pos": {
									"$id": "#/properties/fontMaster/items/properties/metricValues/items/properties/pos",
									"description": "the position",
									"title": "The pos schema",
									"type": "number"
								}
							},
							"type": "object"
						},
						"title": "The metricValues schema",
						"type": "array"
					},
					"name": {
						"$id": "#/properties/fontMaster/items/properties/name",
						"description": "The name of the master. Not relevant to the exported font. Only for the UI",
						"title": "The name schema",
						"type": "string"
					},
					"numberValues": {
						"$id": "#/properties/fontMaster/items/properties/numberValues",
						"additionalItems": true,
						"description": "a list of floats, number settings are stored in the font object. Corresponds to `font.numbers`",
						"items": {
							"$id": "#/properties/fontMaster/items/properties/numberValues/items",
							"description": "An explanation about the purpose of this instance.",
							"title": "The items schema",
							"type": "number"
						},
						"title": "The metricValues schema",
						"type": "array"
					},
					"properties": {
						"$id": "#/definitions/properties"
					},
					"stemValues": {
						"$id": "#/properties/fontMaster/items/properties/stemValues",
						"additionalItems": true,
						"description": "A list of floats, stem settings are stored in the font object.",
						"items": {
							"$id": "#/properties/fontMaster/items/properties/stemValues/items",
							"type": "number"
						},
						"title": "The stemValues schema",
						"type": "array"
					},
					"userData": {
						"$ref": "#/definitions/userData"
					},
					"visible": {
						"$id": "#/properties/fontMaster/items/properties/visible",
						"default": 0,
						"description": "Always set to `1`, otherwise omit the key.",
						"title": "The visible schema",
						"type": ["integer", "boolean"]
					}
				},
				"required": [
					"id",
					"metricValues",
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The fontMaster schema",
			"type": "array"
		},
		"glyphs": {
			"$id": "#/properties/glyphs",
			"additionalItems": true,
			"description": "The glyph object",
			"items": {
				"$id": "#/properties/glyphs/items",
				"additionalProperties": false,
				"properties": {
					"case": {
						"$id": "#/properties/glyphs/items/properties/case",
						"description": "The 'case' if the glyph when manually set. Possible values: \"noCase\", \"upper\", \"lower\", \"smallCaps\", \"other\". This could be used to specify 'height' of default numbers (lining sv old style)",
						"title": "The case schema",
						"type": "string"
					},
					"category": {
						"$id": "#/properties/glyphs/items/properties/category",
						"description": "manually set category",
						"title": "The category schema",
						"type": "string"
					},
					"color": {
						"$id": "#/properties/glyphs/items/properties/color",
						"$ref": "#/definitions/color"
					},
					"direction": {
						"$id": "#/properties/glyphs/items/properties/direction",
						"description": "The writing direction when manually set. Possible values: \"BIDI\", \"LTR\", \"RTL\", \"VTL\", \"VTR\".",
						"type": "string"
					},
					"export": {
						"$id": "#/properties/glyphs/items/properties/export",
						"default": 1,
						"description": "Always set to `0`, otherwise omit the key.",
						"title": "The export schema",
						"type": ["boolean", "integer"]
					},
					"glyphname": {
						"$id": "#/properties/glyphs/items/properties/glyphname",
						"description": "Must be unique throughout the font.",
						"title": "The glyphname schema",
						"type": "string"
					},
					"kernBottom": {
						"$id": "#/properties/glyphs/items/properties/kernBottom",
						"description": "Bottom kerning group",
						"title": "The kernBottom schema",
						"type": "string"
					},
					"kernLeft": {
						"$id": "#/properties/glyphs/items/properties/kernLeft",
						"description": "Left kerning group",
						"title": "The kernLeft schema",
						"type": "string"
					},
					"kernRight": {
						"$id": "#/properties/glyphs/items/properties/kernRight",
						"description": "Right kerning group",
						"title": "The kernRight schema",
						"type": "string"
					},
					"kernTop": {
						"$id": "#/properties/glyphs/items/properties/kernTop",
						"description": "Top kerning group",
						"title": "The kernTop schema",
						"type": "string"
					},
					"lastChange": {
						"$id": "#/properties/glyphs/items/properties/lastChange",
						"description": "Format `2014-01-29 14:14:38 +0000`.",
						"title": "The lastChange schema",
						"type": "string"
					},
					"layers": {
						"$id": "#/properties/glyphs/items/properties/layers",
						"additionalItems": true,
						"description": "The layer object",
						"items": {
							"$id": "#/properties/glyphs/items/properties/layers/items",
							"additionalProperties": false,
							"properties": {
								"anchors": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/anchors",
									"additionalItems": true,
									"description": "An explanation about the purpose of this instance.",
									"items": {
										"$id": "#/properties/glyphs/items/properties/layers/items/properties/anchors/items",
										"properties": {
											"name": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/anchors/items/properties/name",
												"description": "The name of the anchor.",
												"title": "The name schema",
												"type": "string"
											},
											"orientation": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/anchors/items/properties/orientation",
												"description": "Orientation means that the anchor can be attached to the Right or the Center of the layer. So if you change the RSB, it moves along",
												"enum": ["center", "right"],
												"title": "The orientation schema",
												"type": "string"
											},
											"pos": {
												"$ref": "#/definitions/pos"
											}
										},
										"required": [
											"name"
										],
										"title": "The items schema",
										"type": "object"
									},
									"title": "The anchors schema",
									"type": "array"
								},
								"annotations": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations",
									"additionalItems": true,
									"description": "TODO:",
									"items": {
										"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations/items",
										"properties": {
											"angle": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations/items/properties/angle",
												"type": "number"
											},
											"pos": {
												"$ref": "#/definitions/pos"
											},
											"text": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations/items/properties/text",
												"type": "string"
											},
											"type": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations/items/type",
												"type": "string"
											},
											"width": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/annotations/items/width",
												"type": "number"
											}
										},
										"required": [
											"type",
											"pos"
										],
										"title": "The items schema",
										"type": "object"
									},
									"title": "The annotations schema",
									"type": "array"
								},
								"associatedMasterId": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/associatedMasterId",
									"description": "ID of the master the layer is linked to. Not present if it equals layerID, i.e. if the layer is in use as master.",
									"title": "The associatedMasterId schema",
									"type": "string"
								},
								"attr": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr",
									"additionalProperties": false,
									"description": "Layer attributes (color, alternate, coordinate)",
									"properties": {
										"axisRules": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/axisRules",
											"description": "Bracket layer settings",
											"items": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/axisRules/items",
												"additionalProperties": false,
												"description": "An explanation about the purpose of this instance.",
												"properties": {
													"min": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/axisRules/items/properties/min",
														"type": "number"
													},
													"max": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/axisRules/items/properties/max",
														"type": "number"
													}
												}
											}
										},
										"color": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/color",
											"description": "if set, this is a color layer",
											"type": ["integer", "boolean"]
										},
										"colorPalette": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/colorPalette",
											"description": "a index into the palette or '*' for default color",
											"type": ["integer", "string"]
										}, 
										"coordinates": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/coordinates",
											"description": "A list of numbers to specify a position in the axes space",
											"type": "array"
										},
										"freeMaster": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/freeMaster",
											"description": "If that master is a 'freeMaster'",
											"type": "integer"
										},
										"svg": {
											"$id": "#/properties/glyphs/items/properties/layers/items/properties/attr/properties/svg",
											"description": "If the layer contains svg",
											"type": "integer"
										}
									},
									"title": "The layer attributes schema",
									"type": "object"
								},
								"background": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/background",
									"additionalProperties": false,
									"description": "Contains the same children as the layer itself, except for background, layerId, associatedMasterId and width.",
									"properties": {
										"anchors": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/anchors"
										},
										"annotations": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/annotations"
										},
										"backgroundImage": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/backgroundImage"
										},
										"guides": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/guides"
										},
										"hints": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/hints"
										},
										"shapes": {
											"$ref": "#/properties/glyphs/items/properties/layers/items/properties/shapes"
										}
									},
									"title": "The background schema",
									"type": "object"
								},
								"backgroundImage": {
									"$id": "#/properties/fontMaster/items/properties/backgroundImage",
									"description": "a image.",
									"properties": {
										"alpha": {
											"default": 50,
											"description": "a value from 10–100",
											"type": "integer"
										},
										"angle": {
											"$id": "#/properties/fontMaster/items/properties/backgroundImage/items/properties/angle",
											"default": 0,
											"description": "The angle. If not set defaults to 0°",
											"title": "The angle schema",
											"type": "number"
										},
										"imagePath": {
											"description": "The file path to the image. It is stored relative if close enough. Otherwise the full path.",
											"type": "string"
										},
										"locked": {
											"default": 0,
											"description": "Always set to `1`, otherwise omit the key",
											"type": ["integer", "boolean"]
										},
										"pos": {
											"$ref": "#/definitions/pos"
										},
										"scale": {
											"$ref": "#/definitions/scale"
										}
									},
									"required": [
										"imagePath"
									],
									"title": "The backgroundImage schema",
									"type": "object"
								},
								"color": {
									"$ref": "#/definitions/color"
								},
								"guides": {
									"$ref": "#/definitions/guides"
								},
								"hints": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints",
									"additionalItems": true,
									"description": "a list of hints",
									"items": {
										"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items",
										"additionalProperties": false,
										"properties": {
											"horizontal": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/horizontal",
												"description": "If set, the hint is horizontal and vertical otherwise",
												"title": "The horizontal schema",
												"type": ["integer", "boolean"]
											},
											"name": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/name",
												"description": "The name of the hint. Can be used a glyph reference in corner components",
												"title": "The name schema",
												"type": "string"
											},
											"options": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/options",
												"description": "a bitfield for options",
												"title": "The options schema",
												"type": "integer"
											},
											"origin": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/origin",
												"additionalItems": true,
												"description": "'(pathIndex, nodeIndex)' TODO: Explain node indexes",
												"items": {
													"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/origin/items",
													"description": "an index",
													"title": "The items schema",
													"type": "integer"
												},
												"title": "The origin schema",
												"type": ["array", "string"]
											},
											"other1": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/other1",
												"additionalItems": true,
												"description": "`(pathIndex,nodeIndex)` for TT Institutions that need more than two nodes (Interpolation, Diagonal)",
												"items": {
													"type": "integer"
												},
												"title": "The other1 schema",
												"type": "array"
											},
											"other2": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/other2",
												"additionalItems": true,
												"description": "`(pathIndex,nodeIndex)` for TT Institutions that need more than three nodes (Diagonal)",
												"items": {
													"type": "integer"
												},
												"title": "The other2 schema",
												"type": "array"
											},
											"place": {
												"$ref": "#/definitions/scale",
												"description": "`(position,width)` for hints that are not attached to a node."
											},
											"settings": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/settings",
												"description": "hint settings",
												"properties": {
													"deltaV": {
														"description": "delta settings"
													}
												}
											},
											"scale": {
												"$ref": "#/definitions/scale",
												"description": "`(scaleX,scaleY)` Only used for caps and corners"
											},
											"stem": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/stem",
												"description": "if a stem is manually set",
												"title": "The stem schema",
												"type": "integer"
											},
											"target": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/target",
												"additionalItems": true,
												"description": "`(pathIndex,nodeIndex)`, `up` or `down`",
												"items": {
													"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/target/items",
													"description": "an index",
													"title": "The items schema",
													"type": "integer"
												},
												"title": "The target schema",
												"type": ["array", "string"]
											},
											"type": {
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/hints/items/properties/type",
												"description": "The type of the hint. Possible value are: Tag, TopGhost, Stem, BottomGhost, Flex, TTAnchor, TTStem, TTAlign, TTInterpolate, TTDiagonal, TTDelta, Corner, Cap, Brush, Line, Auto\nIf there is no type, it defaults to Stem, or Ghost if `target` is not set",
												"enum": ["Auto", "BottomGhost", "Brush", "Cap", "Corner", "Flex", "Segment", "Stem", "Tag", "TopGhost", "TTDelta", "TTDiagonal", "TTInterpolate", "TTShift", "TTSnap", "TTStem"],
												"title": "The type schema",
												"type": "string"
											}
										},
										"required": [
											"type"
										],
										"title": "The items schema",
										"type": "object"
									},
									"title": "The hints schema",
									"type": "array"
								},
								"layerId": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/layerId",
									"description": "A unique (per glyph) id",
									"title": "The layerId schema",
									"type": "string"
								},
								"metricBottom": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricBottom",
									"description": "Bottom metrics key",
									"title": "The metricBottom schema",
									"type": "string"
								},
								"metricLeft": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricLeft",
									"description": "Left metrics key",
									"title": "The metricLeft schema",
									"type": "string"
								},
								"metricRight": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricRight",
									"description": "Right metrics key",
									"title": "The metricRight schema",
									"type": "string"
								},
								"metricTop": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricTop",
									"description": "Top metrics key",
									"title": "The metricTop schema",
									"type": "string"
								},
								"metricVertWidth": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricVertWidth",
									"description": "Vertical Width (Height) metrics key",
									"title": "The metricVertWidth schema",
									"type": "string"
								},
								"metricWidth": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/metricWidth",
									"description": "Width metrics key",
									"title": "The metricWidth schema",
									"type": "string"
								},
								"name": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/name",
									"description": "The name of the layer. Only stored for none master layers.",
									"title": "The name schema",
									"type": "string"
								},
								"partSelection": {
									"description": "Keys are property names, values are `1` if the layer is selected for the bottom range, `2` for the top.",
									"patternProperties": {
										"^.*$": {
											"type": "integer"
										}
									},
									"type": "object"
								},
								"shapes": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes",
									"additionalItems": true,
									"description": "Can be paths or components",
									"items": {
										"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items",
										"anyOf": [
											{
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/component",
												"additionalProperties": false,
												"description": "a component",
												"properties": {
													"alignment": {
														"description": "controls the automatic alignment of this component. (-1 disables alignment, 1 forces it for glyph that are usually not aligned)",
														"type": "integer"
													},
													"anchor": {
														"description": "Should be indicated if connected to an anchor, especially if more than one possibility is available, e.g. in ligatures.",
														"type": "string"
													},
													"anchorTo": {
														"description": "TODO",
														"type": "string"
													},
													"angle": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/angle",
														"default": 0,
														"description": "the rotation",
														"title": "The angle schema",
														"type": "number"
													},
													"attr": {
														"description": "Color and stroke settings. See [Attributes](*attributes)",
														"type": "object"
													},
													"locked": {
														"default": 0,
														"description": "Always set to `1`, otherwise omit the key",
														"type": ["integer", "boolean"]
													},
													"orientation": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/anchors/items/properties/orientation",
														"description": "Orientation means that the component can be attached to the right or the center of the layer. So if you change the RSB, it moves along",
														"enum": ["center", "right"],
														"title": "The orientation schema",
														"type": "string"
													},
													"piece": {
														"description": "keys are the name of the smart property, values a position on the axis.",
														"patternProperties": {
															"^.*$": {
																"type": "number"
															}
														},
														"type": "object"
													},
													"pos": {
														"$ref": "#/definitions/pos"
													},
													"ref": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/ref",
														"description": "The name of the linked glyph (i.e., the glyph the component is pointing to).",
														"title": "The ref schema",
														"type": "string"
													},
													"scale": {
														"$ref": "#/definitions/scale"
													},
													"slant": {
														"$ref": "#/definitions/scale"
													},
													"userData": {
														"$ref": "#/definitions/userData"
													}
												},
												"required": [
													"ref"
												],
												"title": "The GSComponent schema",
												"type": "object"
											},
											{
												"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path",
												"additionalProperties": false,
												"description": "a path object",
												"properties": {
													"attr": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr",
														"description": "Color and stroke settings. See [Attributes](*attributes)",
														"properties": {
															"fill": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/fill",
																"type": ["integer", "string"]
															},
															"fillColor": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/fillColor",
																"type": "array"
															},
															"mask": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/mask",
																"type": ["integer", "string"]
															},
															"gradient": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/gradient",
																"properties": {
																	"colors": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/gradient/properties/colors",
																		"type": "array"
																	},
																	"start": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/gradient/properties/start",
																		"type": "array"
																	},
																	"end": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/gradient/properties/end",
																		"type": "array"
																	}
																}
															},
															"shadow": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadow",
																"properties": {
																	"blur": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadow/properties/blue",
																		"type": "string"
																	},
																	"color": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadow/properties/color",
																		"type": "array"
																	},
																	"offsetX": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadow/properties/offsetX",
																		"type": "string"
																	},
																	"offsetY": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadow/properties/offsetY",
																		"type": "string"
																	}
																},
																"type": "object"
															},
															"shadowIn": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadowIn",
																"properties": {
																	"blur": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadowIn/properties/blue",
																		"type": "string"
																	},
																	"color": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadowIn/properties/color",
																		"type": "array"
																	},
																	"offsetX": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadowIn/properties/offsetX",
																		"type": "string"
																	},
																	"offsetY": {
																		"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/shadowIn/properties/offsetY",
																		"type": "string"
																	}
																},
																"type": "object"
															},
															"strokeColor": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/strokeColor",
																"type": "array"
															},
															"strokePos": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/strokePos",
																"description": "TODO: should be integer",
																"type": ["integer", "string"]
															},
															"strokeWidth": {
																"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/path/properties/attr/properties/strokeWidth",
																"type": ["number", "string"]
															}
														},
														"type": "object"
													},
													"closed": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/closed",
														"default": 1,
														"description": "Always set to `1`, otherwise omit the key",
														"title": "The closed schema",
														"type": ["integer", "boolean"]
													},
													"nodes": {
														"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/nodes",
														"additionalItems": true,
														"default": [],
														"description": "a list of nodes",
														"items": {
															"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/nodes/items",
															"additionalItems": true,
															"description": "a node",
															"items": [
																{
																	"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/nodes/items/X",
																	"title": "X",
																	"type": "number"
																},
																{
																	"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/nodes/items/Y",
																	"title": "Y",
																	"type": "number"
																},
																{
																	"$id": "#/properties/glyphs/items/properties/layers/items/properties/shapes/items/properties/nodes/items/nodetype",
																	"title": "node type",
																	"type": "string",
																	"enum": ["l", "ls", "c", "cs", "q", "qs", "o", "ct", "lt"]
																},
																{
																	"title": "userData",
																	"type": "object"
																}
															],
															"title": "The items schema",
															"type": "array"
														},
														"title": "The nodes schema",
														"type": "array"
													}
												},
												"title": "The GSPath schema",
												"type": "object"
											}
										]
									},
									"title": "The shapes schema",
									"type": "array"
								},
								"userData": {
									"$ref": "#/definitions/userData"
								},
								"vertOrigin": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/vertOrigin",
									"description": "Offset from default (ascender). Defaults to `0`",
									"title": "The vertOrigin schema",
									"type": "number"
								},
								"vertWidth": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/vertWidth",
									"description": "Only stored if other than the default (ascender+descender)",
									"title": "The vertWidth schema",
									"type": "number"
								},
								"visible": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/visible",
									"default": 1,
									"description": "The visibility setting in the layer panel (the eye symbol). Always set to `1`, otherwise omit the key.",
									"title": "The visible schema",
									"type": "integer"
								},
								"width": {
									"$id": "#/properties/glyphs/items/properties/layers/items/properties/width",
									"default": 600,
									"description": "The Width of the layer",
									"title": "The width schema",
									"type": "number"
								}
							},
							"required": [
								"layerId",
								"width"
							],
							"title": "The items schema",
							"type": "object"
						},
						"title": "The layers schema",
						"type": "array"
					},
					"locked": {
						"default": 0,
						"description": "If set the glyphs can’t be changed. Always set to `1`, otherwise omit the key",
						"type": ["integer", "boolean"]
					},
					"metricLeft": {
						"$id": "#/properties/glyphs/items/properties/metricLeft",
						"description": "Left metrics key",
						"title": "The metricLeft schema",
						"type": "string"
					},
					"metricRight": {
						"$id": "#/properties/glyphs/items/properties/metricRight",
						"description": "Right metrics key",
						"title": "The metricRight schema",
						"type": "string"
					},
					"metricTop": {
						"$id": "#/properties/glyphs/items/properties/metricTop",
						"description": "Top metrics key",
						"title": "The metricTop schema",
						"type": "string"
					},
					"metricVertWidth": {
						"$id": "#/properties/glyphs/items/properties/metricVertWidth",
						"description": "Vertical Width (Height) metrics key",
						"title": "The metricVertWidth schema",
						"type": "string"
					},
					"metricWidth": {
						"$id": "#/properties/glyphs/items/properties/metricWidth",
						"description": "Width metrics key",
						"title": "The metricWidth schema",
						"type": "string"
					},
					"note": {
						"$id": "#/properties/glyphs/items/properties/note",
						"description": "glyph note",
						"title": "The note schema",
						"type": "string"
					},
					"partsSettings": {
						"$id": "#/properties/glyphs/items/properties/partsSettings",
						"items": {
							"$id": "#/properties/glyphs/items/properties/partsSettings",
							"additionalProperties": false,
							"description": "axes of a smart component",
							"properties": {
								"bottomName": {
									"$id": "#/properties/glyphs/items/properties/partsSettings/properties/bottomName",
									"type": "string"
								},
								"bottomValue": {
									"$id": "#/properties/glyphs/items/properties/partsSettings/properties/bottomValue",
									"type": "number"
								},
								"name": {
									"$id": "#/properties/glyphs/items/properties/partsSettings/properties/name",
									"type": "string"
								},
								"topName": {
									"$id": "#/properties/glyphs/items/properties/partsSettings/properties/topName",
									"type": "string"
								},
								"topValue": {
									"$id": "#/properties/glyphs/items/properties/partsSettings/properties/topValue",
									"type": "number"
								}
							},
							"required": [
								"bottomValue",
								"name",
								"topValue"
							],
							"title": "The partsSettings schema",
							"type": "object"
						},
						"type": "array"
					},
					"production": {
						"$id": "#/properties/glyphs/items/properties/production",
						"description": "manually set production name",
						"title": "The production schema",
						"type": "string"
					},
					"script": {
						"$id": "#/properties/glyphs/items/properties/script",
						"description": "manually set script",
						"title": "The script schema",
						"type": "string"
					},
					"sortName": {
						"$id": "#/properties/glyphs/items/properties/sortName",
						"description": "manually set sort name",
						"title": "The script schema",
						"type": "string"
					},
					"sortNameKeep": {
						"$id": "#/properties/glyphs/items/properties/sortNameKeep",
						"description": "manually set sort name keep",
						"title": "The script schema",
						"type": "string"
					},
					"subCategory": {
						"$id": "#/properties/glyphs/items/properties/subCategory",
						"description": "manually set subcategory",
						"title": "The subCategory schema",
						"type": "string"
					},
					"tags": {
						"$id": "#/properties/glyphs/items/properties/tags",
						"description": "list of tags",
						"items": {
							"type": "string"
						},
						"title": "The tags schema",
						"type": "array"
					},
					"unicode": {
						"$id": "#/properties/glyphs/items/properties/unicode",
						"description": "for a single code, use just the int value (e.g. `unicode = 65;`) and for multiple use a tuple of all values (`unicode = (65,97);`).",
						"title": "The unicode schema",
						"type": ["array", "integer"]
					},
					"userData": {
						"$id": "#/definitions/userData"
					},
					"changeCount": {
						"$id": "#/properties/glyphs/items/properties/changeCount",
						"description": "only present in autosave files",
						"title": "changeCount",
						"type": "integer"
					}
				},
				"required": [
					"glyphname",
					"layers"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The glyphs schema",
			"type": "array"
		},
		"instances": {
			"$id": "#/properties/instances",
			"additionalItems": true,
			"default": [],
			"description": "tnstance objects",
			"items": {
				"$id": "#/properties/instances/items",
				"additionalProperties": false,
				"properties": {
					"axesValues": {
						"$id": "#/properties/instances/items/properties/axesValues",
						"additionalItems": true,
						"description": "A list of float values storing the axis coordinate for each axis, Axis settings are stored in the font object.",
						"items": {
							"$id": "#/properties/instances/items/properties/axesValues/items",
							"type": "number"
						},
						"title": "The axesValues schema",
						"type": "array"
					},
					"customParameters": {
						"$ref": "#/definitions/customParameters"
					},
					"exports": {
						"$id": "#/properties/instances/items/properties/exports",
						"default": 1,
						"description": "Always set to `0`, otherwise omit the key.",
						"type": ["integer", "boolean"]
					},
					"instanceInterpolations": {
						"$id": "#/properties/instances/items/properties/instanceInterpolations",
						"description": "keys are master IDs, values are the factors for that master.",
						"patternProperties": {
							"^.*$": {
								"type": ["number", "string", "array"]
							}
						},
						"title": "The instanceInterpolations schema",
						"type": "object"
					},
					"isBold": {
						"$id": "#/properties/instances/items/properties/isBold",
						"default": 0,
						"description": "for style linking. Always set to `1`, otherwise omit the key.",
						"title": "The isBold schema",
						"type": ["boolean", "integer"]
					},
					"isItalic": {
						"$id": "#/properties/instances/items/properties/isItalic",
						"default": 0,
						"description": "for style linking. Always set to `1`, otherwise omit the key.",
						"title": "The isItalic schema",
						"type": ["boolean", "integer"]
					},
					"linkStyle": {
						"$id": "#/properties/instances/items/properties/linkStyle",
						"description": "The linked style name",
						"title": "The linkStyle schema",
						"type": "string"
					},
					"manualInterpolation": {
						"$id": "#/properties/instances/items/properties/manualInterpolation",
						"default": 0,
						"description": "If set, use the `instanceInterpolations`, otherwise calculate from `axisValues`. Always set to `1`, otherwise omit the key",
						"title": "The manualInterpolation schema",
						"type": ["boolean", "integer"]
					},
					"name": {
						"$id": "#/properties/instances/items/properties/name",
						"description": "The style name.",
						"title": "The name schema",
						"type": "string"
					},
					"properties": {
						"$id": "#/definitions/properties"
					},
					"type": {
						"$id": "#/properties/instances/items/properties/type",
						"description": "The instance type.",
						"enum": ["variable"],
						"type": "string"
					},
					"userData": {
						"$id": "#/definitions/userData"
					},
					"visible": {
						"$id": "#/properties/instances/items/properties/visible",
						"default": 1,
						"description": "Always set to `0`, otherwise omit the key.",
						"type": ["integer", "boolean"]
					},
					"weightClass": {
						"$id": "#/properties/instances/items/properties/weightClass",
						"default": 5,
						"description": "the weight class setting",
						"title": "The weightClass schema",
						"type": "integer"
					},
					"widthClass": {
						"$id": "#/properties/instances/items/properties/widthClass",
						"default": 400,
						"description": "the width class setting",
						"title": "The widthClass schema",
						"type": "integer"
					}
				},
				"required": [
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The instances schema",
			"type": "array"
		},
		"kerningLTR": {
			"$ref": "#/definitions/kerning"
		},
		"kerningRTL": {
			"$ref": "#/definitions/kerning"
		},
		"kerningVertical": {
			"$ref": "#/definitions/kerning"
		},
		"metrics": {
			"$id": "#/properties/metrics",
			"additionalItems": true,
			"default": [],
			"description": "the font wide list of metrics. The actual values are in the masters",
			"items": {
				"$id": "#/properties/metrics/items",
				"additionalProperties": false,
				"description": "the metric object",
				"properties": {
					"filter": {
						"$ref": "#filter"
					},
					"name": {
						"$id": "#/properties/metrics/items/properties/name",
						"description": "the name of the metric. Can be anything. If the metric has a special meaning, set the type to a appropriate value",
						"title": "The name schema",
						"type": "string"
					},
					"type": {
						"$id": "#/properties/metrics/items/properties/type",
						"default": 0,
						"description": "special meaning. allowed keys: \"ascender\", \"cap height\", \"slant height\", \"x-height\", \"midHeight\", \"topHeight\", \"bodyHeight\", \"descender\", \"baseline\", \"italic angle\"",
						"enum": ["ascender", "cap height", "slant height", "x-height", "midHeight", "topHeight", "bodyHeight", "descender", "baseline", "italic angle"],
						"title": "The type schema",
						"type": "string"
					}
				},
				"title": "The items schema",
				"type": "object"
			},
			"title": "The metrics schema",
			"type": "array"
		},
		"note": {
			"$id": "#/properties/note",
			"description": "a note",
			"title": "The note schema",
			"type": "string"
		},
		"numbers": {
			"$id": "#/properties/numbers",
			"additionalItems": true,
			"description": "definition of the numbers values. Used to store interpolating numbers in each master",
			"items": {
				"$id": "#/properties/numbers/items",
				"additionalProperties": false,
				"description": "the font wide list of general purpose numbers. The actual values are in the masters",
				"properties": {
					"name": {
						"description": "name of the number",
						"type": "string"
					}
				},
				"required": [
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The numbers schema",
			"type": "array"
		},
		"properties": {
			"$id": "#/properties/properties",
			"additionalItems": true,
			"description": "An explanation about the purpose of this instance.",
			"items": {
				"$id": "#/properties/properties/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"key": {
						"$id": "#/properties/properties/items/properties/key",
						"description": "An explanation about the purpose of this instance.",
						"title": "The key schema",
						"type": "string"
					},
					"value": {
						"$id": "#/properties/properties/items/properties/values",
						"description": "An explanation about the purpose of this instance.",
						"title": "The values schema",
						"type": "string"
					},
					"values": {
						"$id": "#/properties/properties/items/properties/values",
						"additionalItems": true,
						"description": "An explanation about the purpose of this instance.",
						"items": {
							"$id": "#/properties/properties/items/properties/values/items",
							"additionalProperties": false,
							"description": "An explanation about the purpose of this instance.",
							"properties": {
								"language": {
									"$id": "#/properties/properties/items/properties/values/items/properties/language",
									"description": "An explanation about the purpose of this instance.",
									"title": "The language schema",
									"type": "string"
								},
								"value": {
									"$id": "#/properties/properties/items/properties/values/items/properties/value",
									"description": "An explanation about the purpose of this instance.",
									"title": "The value schema",
									"type": "string"
								}
							},
							"required": [
								"language",
								"value"
							],
							"title": "The items schema",
							"type": "object"
						},
						"title": "The values schema",
						"type": "array"
					}
				},
				"required": [
					"key"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The properties schema",
			"type": "array"
		},
		"settings": {
			"$id": "#/properties/settings",
			"description": "Settings that influence the editing behavior.",
			"description": "An explanation about the purpose of this instance.",
			"properties": {
				"disablesAutomaticAlignment": {
					"$id": "#/properties/disablesAutomaticAlignment",
					"default": 0,
					"description": "Always set to `1`, otherwise omit the key",
						"default": 1,
					"title": "The disablesAutomaticAlignment schema",
					"type": ["boolean", "integer"]
				},
				"disablesNiceNames": {
					"$id": "#/properties/disablesNiceNames",
					"default": 0,
					"description": "Always set to `1`, otherwise omit the key",
					"title": "The disablesNiceNames schema",
					"type": ["boolean", "integer"]
				},
				"gridLength": {
					"$id": "#/properties/gridLength",
					"default": 1,
					"description": "Only written if not `1`",
					"title": "The gridLength schema",
					"type": "integer"
				},
				"gridSubDivision": {
					"$id": "#/properties/gridSubDivision",
					"default": 1,
					"description": "Only written if bigger then `1`",
					"minimum": 2,
					"title": "The gridSubDivision schema",
					"type": "integer"
				},
				"keepAlternatesTogether": {
					"$id": "#/properties/keepAlternatesTogether",
					"default": 0,
					"description": "Always set to `1`, otherwise omit the key.",
					"title": "The keepAlternatesTogether schema",
					"type": ["boolean", "integer"]
				},
				"keyboardIncrement": {
					"$id": "#/properties/keyboardIncrement",
					"default": 1,
					"description": "Only written if not `1`",
					"title": "The keyboardIncrement schema",
					"type": "number"
				},
				"keyboardIncrementBig": {
					"$id": "#/properties/keyboardIncrementBig",
					"default": 10,
					"description": "Only written if not `10`",
					"title": "The keyboardIncrementBig schema",
					"type": "number"
				},
				"keyboardIncrementHuge": {
					"$id": "#/properties/keyboardIncrementHuge",
					"default": 100,
					"description": "Only written if not `100`",
					"title": "The keyboardIncrementHuge schema",
					"type": "number"
				}
			},
			"title": "The properties schema",
			"type": "object"
		},
		"stems": {
			"$id": "#/properties/stems",
			"additionalItems": true,
			"description": "An explanation about the purpose of this instance.",
			"items": {
				"$id": "#/properties/stems/items",
				"additionalProperties": false,
				"description": "An explanation about the purpose of this instance.",
				"properties": {
					"filter": {
						"$ref": "#filter"
					},
					"horizontal": {
						"$id": "#/properties/stems/items/properties/horizontal",
						"description": "An explanation about the purpose of this instance.",
						"title": "The horizontal schema",
						"type": "integer"
					},
					"name": {
						"$id": "#/properties/stems/items/properties/name",
						"description": "An explanation about the purpose of this instance.",
						"title": "The name schema",
						"type": "string"
					}
				},
				"required": [
					"name"
				],
				"title": "The items schema",
				"type": "object"
			},
			"title": "The stems schema",
			"type": "array"
		},
		"unitsPerEm": {
			"$id": "#/properties/unitsPerEm",
			"description": "units per em",
			"title": "The unitsPerEm schema",
			"type": "integer"
		},
		"userData": {
			"$ref": "#/definitions/userData"
		},
		"versionMajor": {
			"$id": "#/properties/versionMajor",
			"description": "main version",
			"minimum": 0,
			"title": "The versionMajor schema",
			"type": "integer"
		},
		"versionMinor": {
			"$id": "#/properties/versionMinor",
			"description": "version minor",
			"maximum": 999,
			"minimum": 0,
			"title": "The versionMinor schema",
			"type": "integer"
		}
	},
	"required": [
		".appVersion",
		".formatVersion",
		"familyName",
		"fontMaster",
		"glyphs",
		"metrics",
		"unitsPerEm",
		"versionMajor",
		"versionMinor"
	],
	"title": "The root schema",
	"type": "object"
}
