{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/w3c-odrl/OdrlRule",
	"title": "OdrlRule",
	"description": "Base interface for ODRL Rules.\nhttps://www.w3.org/TR/odrl-model/#rule",
	"type": "object",
	"properties": {
		"uid": {
			"type": "string",
			"description": "Optional unique identifier for the rule."
		},
		"action": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlActionType"
				},
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAction"
				},
				{
					"type": "array",
					"items": {
						"anyOf": [
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlActionType"
							},
							{
								"type": "string"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAction"
							}
						]
					}
				}
			],
			"description": "The action associated with the rule."
		},
		"target": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAsset"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAssetCollection"
				},
				{
					"type": "array",
					"items": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAsset"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlAssetCollection"
							}
						]
					}
				}
			],
			"description": "The target asset for the rule."
		},
		"assigner": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
				},
				{
					"type": "array",
					"items": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
							}
						]
					}
				}
			],
			"description": "The assigner of the rule."
		},
		"assignee": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
				},
				{
					"type": "array",
					"items": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
							}
						]
					}
				}
			],
			"description": "The assignee of the rule."
		},
		"constraint": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlConstraint"
				},
				{
					"$ref": "https://schema.twindev.org/w3c-odrl/OdrlLogicalConstraint"
				},
				{
					"type": "array",
					"items": {
						"anyOf": [
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlConstraint"
							},
							{
								"$ref": "https://schema.twindev.org/w3c-odrl/OdrlLogicalConstraint"
							}
						]
					}
				}
			],
			"description": "Constraints applied to the rule."
		},
		"summary": {
			"type": "string",
			"description": "Additional relation sub-properties as defined in ODRL profiles.\nFor example, 'summary' in profile \"http://example.com/odrl:profile:03\"\nindicates where the output should be stored."
		}
	}
}
