{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Descriptor",
    "description": "Defines the semantics of specific data elements or state transitions that MAY exist in an associated representation.",
    "type": "object",
    "properties": {
        "links": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "rel": {
                        "type": "string",
                        "description": "A [RFC5988][] approved relation type."
                    },
                    "href": {
                        "type": "string",
                        "description": "The URL of the resource described by the associated `rel`."
                    }
                },
                "required": [
                    "rel",
                    "href"
                ],
                "description": "Identifies a link between an ALPS element and some other (possibly external) resource.\n\n"
            },
            "description": "Links to other related resources."
        },
        "descriptors": {
            "type": "array",
            "items": {
                "description": "Defines the semantics of specific data elements or state transitions that MAY exist in an associated representation.\n\n"
            },
            "description": "Data and transition definitions."
        },
        "doc": {
            "type": "object",
            "properties": {
                "format": {
                    "enum": [
                        "text",
                        "html",
                        "asciidoc"
                    ],
                    "description": "Indicates how the content should be parsed."
                },
                "href": {
                    "type": "string",
                    "description": "References a related document containing human readable text."
                },
                "content": {
                    "type": "string",
                    "description": "The text contents."
                }
            },
            "description": "A description of the element."
        },
        "ext": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "A document-wide unique identifier for the extension element."
                },
                "href": {
                    "type": "string",
                    "description": "References the definition of the extension."
                },
                "value": {
                    "type": "string",
                    "description": "Specifies the value."
                }
            },
            "required": [
                "id"
            ],
            "description": "Author-specific extension to an element."
        },
        "id": {
            "type": "string",
            "description": "A document-wide unique identifier for the descriptor element."
        },
        "name": {
            "type": "string",
            "description": "A name for a descriptor element."
        },
        "type": {
            "enum": [
                "semantic",
                "safe",
                "idempotent",
                "unsafe"
            ],
            "description": "The type of hypermedia control within the associated representation."
        },
        "rt": {
            "type": "string",
            "description": "ID of another descriptor in the document. Valid for `safe`, `idempotent` and `unsafe` types."
        }
    }
}