{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/ais/AuditableItemStreamEntry",
	"title": "AuditableItemStreamEntry",
	"description": "Interface describing an entry for the stream.",
	"type": "object",
	"properties": {
		"@context": {
			"type": "array",
			"prefixItems": [
				{
					"const": "https://schema.twindev.org/ais/"
				},
				{
					"const": "https://schema.twindev.org/common/"
				}
			],
			"items": {
				"$ref": "https://schema.twindev.org/json-ld/JsonLdContextDefinitionElement"
			},
			"minItems": 2,
			"description": "JSON-LD Context."
		},
		"id": {
			"type": "string",
			"description": "The id of the entry."
		},
		"dateCreated": {
			"type": "string",
			"description": "The date/time of when the entry was created."
		},
		"dateModified": {
			"type": "string",
			"description": "The date/time of when the entry was modified."
		},
		"dateDeleted": {
			"type": "string",
			"description": "The date/time of when the entry was deleted, as we never actually remove items."
		},
		"userIdentity": {
			"type": "string",
			"description": "The identity of the user which added the entry to the stream."
		},
		"index": {
			"type": "number",
			"description": "The index of the entry in the stream."
		},
		"proofId": {
			"type": "string",
			"description": "The id of the immutable proof."
		},
		"verification": {
			"$ref": "https://schema.twindev.org/immutable-proof/ImmutableProofVerification",
			"description": "The verification of the entry."
		}
	},
	"required": ["id", "dateCreated", "index"],
	"allOf": [
		{
			"$ref": "https://schema.twindev.org/ais/AuditableItemStreamEntryBase"
		}
	]
}
