{
	"$id": "relative-intensity-unit.json",
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"required": ["name", "defaultValue", "absoluteUnit"],
	"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/absoluteIntensityUnit"
		},
		"tags": {
			"type": "array",
			"items": {
				"type": "string"
			}
		},
		"labels": {
			"type": "array",
			"items": {
				"$ref": "#/$defs/labelOrUriReference"
			}
		},
		"meta": {
			"type": "object"
		}
	},
	"$defs": {
		"absoluteIntensityUnit": {
			"anyOf": [
				{
					"$ref": "#/$defs/unitExertion"
				},
				{
					"$ref": "#/$defs/unitHeartRate"
				},
					{
					"$ref": "#/$defs/unitPace"
				}
			]
		},
		"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"
				}
			]
		},
		"unitExertion": {
			"enum": ["rpe"]
		},
		"unitHeartRate": {
			"enum": ["bpm"]
		},
		"unitPace": {
			"enum": ["min/km", "min/mile"]
		},
		"uriReference": {
			"type": "string",
			"format": "uri-reference"
		},
		"valueSelector": {
			"enum": ["avg", "max", "min", "latest", "oldest"]
		}
	}
}