{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"title": "Plane Slope Class Info",
	"description": "Settings and classes for plane slope classification",
	"type": "object",
	"definitions": {
		"method-1": {
			"type": "object",
			"description": "Classification method 1",
			"properties": {
				"plane_classification_method": {
					"type": "integer",
					"description": "method ID (=1)",
					"minimum": 1,
					"maximum": 1
				},
				"maximum_inclination_angle_horizontal": {
					"type": "number",
					"description": "maximum inclination angle of horizontal plane patches [deg]",
					"minimum": -360.0,
					"maximum": 360.0
				}
			},
			"required": [
				"plane_classification_method",
				"maximum_inclination_angle_horizontal"
			]
		},
		"method-2": {
			"type": "object",
			"description": "Classification method 2",
			"properties": {
				"plane_classification_method": {
					"type": "integer",
					"description": "method ID (=2)",
					"minimum": 2,
					"maximum": 2
				},
				"sloping_plane_classes_minimum_angle": {
					"type": "number",
					"description": "minimum inclination angle of sloping plane patches [deg]",
					"minimum": -360.0,
					"maximum": 360.0
				},
				"sloping_plane_classes_maximum_angle": {
					"type": "number",
					"description": "maximum inclination angle of sloping plane patches [deg]",
					"minimum": -360.0,
					"maximum": 360.0
				}
			},
			"required": [
				"plane_classification_method",
				"sloping_plane_classes_minimum_angle",
				"sloping_plane_classes_maximum_angle"
			]
		}
	},
	"properties": {
		"settings": {
			"type": "object",
			"description": "Classification settings, details see documentation of rdbplanes",
			"oneOf": [
				{
					"$ref": "#/definitions/method-1"
				},
				{
					"$ref": "#/definitions/method-2"
				}
			]
		},
		"classes": {
			"type": "object",
			"description": "Class definition table",
			"patternProperties": {
				"^[0-9]+$": {
					"description": "one field per class, field name is class number, field value is class name",
					"type": "string"
				}
			},
			"additionalProperties": false
		}
	},
	"required": [
		"settings",
		"classes"
	]
}