{
	"$id": "relative-repeat-unit.json",
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"required": ["name", "defaultValue", "absoluteUnit", "fixed"],
	"unevaluatedProperties": false,
	"properties": {
		"name": {
			"type": "string"
		},
		"description": {
			"type": "string"
		},
		"created": {
			"type": "string",
			"format": "date-time"
		},
		"modified": {
			"type": "string",
			"format": "date-time"
		},
		"connectedLogbook": {
			"$ref": "#/$defs/logbookConnector"
		},
		"defaultValue": {
			"$ref": "#/$defs/absoluteValue"
		},
		"absoluteUnit": {
			"$ref": "#/$defs/absoluteRepeatUnit"
		},
		"fixed": {
			"type": "boolean"
		},
		"tags": {
			"type": "array",
			"items": {
				"type": "string"
			}
		},
		"labels": {
			"type": "array",
			"items": {
				"$ref": "#/$defs/labelOrUriReference"
			}
		},
		"meta": {
			"type": "object"
		}
	},
	"$defs": {
		"absoluteRepeatUnit": {
			"anyOf": [
				{
					"$ref": "#/$defs/unitAmount"
				},
				{
					"$ref": "#/$defs/unitLength"
				},
				{
					"$ref": "#/$defs/unitPower"
				},
				{
					"$ref": "#/$defs/unitTime"
				}
			]
		},
		"absoluteValue": {
			"type": "number",
			"minimum": 0
		},
		"labelOrUriReference": {
			"anyOf": [
				{
					"$ref": "https://graph.movelapse.com/1.0/schemas/label.json"
				},
				{
					"$ref": "#/$defs/uriReference"
				}
			]
		},
		"logbookConnector": {
			"type": "object",
			"required": ["logbook", "valueSelector"],
			"unevaluatedProperties": false,
			"properties": {
				"logbook": {
					"$ref": "#/$defs/logbookOrUriReference"
				},
				"valueSelector": {
					"$ref": "#/$defs/valueSelector"
				},
				"multiplier": {
					"type": "number"
				},
				"meta": {
					"type": "object"
				}
			}
		},
		"logbookOrUriReference": {
			"anyOf": [
				{
					"$ref": "https://graph.movelapse.com/1.0/schemas/logbook.json"
				},
				{
					"$ref": "#/$defs/uriReference"
				}
			]
		},
		"unitAmount": {
			"enum": ["repetition"]
		},
		"unitLength": {
			"enum": ["centimeter", "meter", "kilometer", "inch", "foot", "yard", "mile"]
		},
		"unitPower": {
			"enum": ["watt"]
		},
		"unitTime": {
			"enum": ["second", "minute", "hour"]
		},
		"uriReference": {
			"type": "string",
			"format": "uri-reference"
		},
		"valueSelector": {
			"enum": ["avg", "max", "min", "latest", "oldest"]
		}
	}
}