{
    "$defs": {
        "AliasPredicateEnum": {
            "description": "permissible values for the relationship between an element and an alias",
            "enum": [
                "EXACT_SYNONYM",
                "RELATED_SYNONYM",
                "BROAD_SYNONYM",
                "NARROW_SYNONYM"
            ],
            "title": "AliasPredicateEnum",
            "type": "string"
        },
        "AltDescription": {
            "additionalProperties": false,
            "description": "an attributed description",
            "properties": {
                "description": {
                    "description": "text of an attributed description",
                    "type": "string"
                },
                "source": {
                    "description": "the source of an attributed description",
                    "type": "string"
                }
            },
            "required": [
                "source",
                "description"
            ],
            "title": "AltDescription",
            "type": "object"
        },
        "AltDescription__identifier_optional": {
            "additionalProperties": false,
            "description": "an attributed description",
            "properties": {
                "description": {
                    "description": "text of an attributed description",
                    "type": "string"
                },
                "source": {
                    "description": "the source of an attributed description",
                    "type": "string"
                }
            },
            "required": [
                "description"
            ],
            "title": "AltDescription",
            "type": "object"
        },
        "Annotation": {
            "additionalProperties": false,
            "description": "a tag/value pair with the semantics of OWL Annotation",
            "properties": {
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "tag": {
                    "description": "a tag associated with an extension",
                    "type": "string"
                },
                "value": {
                    "description": "the actual annotation",
                    "type": "string"
                }
            },
            "required": [
                "tag",
                "value"
            ],
            "title": "Annotation",
            "type": "object"
        },
        "Annotation__identifier_optional": {
            "additionalProperties": false,
            "description": "a tag/value pair with the semantics of OWL Annotation",
            "properties": {
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "tag": {
                    "description": "a tag associated with an extension",
                    "type": "string"
                },
                "value": {
                    "description": "the actual annotation",
                    "type": "string"
                }
            },
            "required": [
                "value"
            ],
            "title": "Annotation",
            "type": "object"
        },
        "AnonymousClassExpression": {
            "additionalProperties": false,
            "description": "",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "is_a": {
                    "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded",
                    "type": "string"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "slot_conditions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "expresses constraints on a group of slots for a class expression",
                    "type": "object"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "title": "AnonymousClassExpression",
            "type": "object"
        },
        "AnonymousEnumExpression": {
            "additionalProperties": false,
            "description": "An enum_expression that is not named",
            "properties": {
                "code_set": {
                    "description": "the identifier of an enumeration code set.",
                    "type": "string"
                },
                "code_set_tag": {
                    "description": "the version tag of the enumeration code set",
                    "type": "string"
                },
                "code_set_version": {
                    "description": "the version identifier of the enumeration code set",
                    "type": "string"
                },
                "concepts": {
                    "description": "A list of identifiers that are used to construct a set of permissible values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "include": {
                    "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "inherits": {
                    "description": "An enum definition that is used as the basis to create a new enum",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "matches": {
                    "$ref": "#/$defs/MatchQuery",
                    "description": "Specifies a match query that is used to calculate the list of permissible values"
                },
                "minus": {
                    "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "permissible_values": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/PermissibleValue__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "A list of possible values for a slot range",
                    "type": "object"
                },
                "pv_formula": {
                    "$ref": "#/$defs/PvFormulaOptions",
                    "description": "Defines the specific formula to be used to generate the permissible values."
                },
                "reachable_from": {
                    "$ref": "#/$defs/ReachabilityQuery",
                    "description": "Specifies a query for obtaining a list of permissible values based on graph reachability"
                }
            },
            "title": "AnonymousEnumExpression",
            "type": "object"
        },
        "AnonymousSlotExpression": {
            "additionalProperties": false,
            "description": "",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_members": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with all members satisfying the condition"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "enum_range": {
                    "$ref": "#/$defs/EnumExpression",
                    "description": "An inlined enumeration"
                },
                "equals_expression": {
                    "description": "the value of the slot must equal the value of the evaluated expression",
                    "type": "string"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "has_member": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with at least one member satisfying the condition"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "inlined": {
                    "description": "True means that keyed or identified slot appears in an outer structure by value.  False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.",
                    "type": "boolean"
                },
                "inlined_as_list": {
                    "description": "True means that an inlined slot is represented as a list of range instances.  False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.",
                    "type": "boolean"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "maximum_cardinality": {
                    "description": "the maximum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_cardinality": {
                    "description": "the minimum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "range": {
                    "description": "defines the type of the object of the slot.  Given the following slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n  X:\n    S1: Y\n\nimplicitly asserts Y is an instance of C2\n",
                    "type": "string"
                },
                "range_expression": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "A range that is described as a boolean expression combining existing ranges"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "recommended": {
                    "description": "true means that the slot should be present in instances of the class definition, but this is not required",
                    "type": "boolean"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "required": {
                    "description": "true means that the slot must be present in instances of the class definition",
                    "type": "boolean"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                },
                "value_presence": {
                    "$ref": "#/$defs/PresenceEnum",
                    "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)"
                }
            },
            "title": "AnonymousSlotExpression",
            "type": "object"
        },
        "AnonymousTypeExpression": {
            "additionalProperties": false,
            "description": "A type expression that is not a top-level named type definition. Used for nesting.",
            "properties": {
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                }
            },
            "title": "AnonymousTypeExpression",
            "type": "object"
        },
        "Anything": {
            "additionalProperties": true,
            "description": "",
            "title": "Anything",
            "type": "object"
        },
        "ClassDefinition": {
            "additionalProperties": false,
            "description": "an element whose instances are complex objects that may have slot-value assignments",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "attributes": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "Inline definition of slots",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "children_are_mutually_disjoint": {
                    "description": "If true then all direct is_a children are mutually disjoint and share no instances in common",
                    "type": "boolean"
                },
                "class_uri": {
                    "description": "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas",
                    "type": "string"
                },
                "classification_rules": {
                    "description": "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance.",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "defining_slots": {
                    "description": "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "disjoint_with": {
                    "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "is_a": {
                    "description": "A primary parent class from which inheritable metaslots are propagated",
                    "type": "string"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent mixin classes from which inheritable metaslots are propagated",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "represents_relationship": {
                    "description": "true if this class represents a relationship rather than an entity",
                    "type": "boolean"
                },
                "rules": {
                    "description": "the collection of rules that apply to all members of this class",
                    "items": {
                        "$ref": "#/$defs/ClassRule"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "slot_conditions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "expresses constraints on a group of slots for a class expression",
                    "type": "object"
                },
                "slot_names_unique": {
                    "description": "if true then induced/mangled slot names are not created for class_usage and attributes",
                    "type": "boolean"
                },
                "slot_usage": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "the refinement of a slot in the context of the containing class definition.",
                    "type": "object"
                },
                "slots": {
                    "description": "collection of slot names that are applicable to a class",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "subclass_of": {
                    "description": "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation",
                    "type": "string"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "tree_root": {
                    "description": "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations",
                    "type": "boolean"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unique_keys": {
                    "additionalProperties": {
                        "$ref": "#/$defs/UniqueKey__identifier_optional"
                    },
                    "description": "A collection of named unique keys for this class. Unique keys may be singular or compound.",
                    "type": "object"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "title": "ClassDefinition",
            "type": "object"
        },
        "ClassDefinition__identifier_optional": {
            "additionalProperties": false,
            "description": "an element whose instances are complex objects that may have slot-value assignments",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "attributes": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "Inline definition of slots",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "children_are_mutually_disjoint": {
                    "description": "If true then all direct is_a children are mutually disjoint and share no instances in common",
                    "type": "boolean"
                },
                "class_uri": {
                    "description": "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas",
                    "type": "string"
                },
                "classification_rules": {
                    "description": "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance.",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "defining_slots": {
                    "description": "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "disjoint_with": {
                    "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "is_a": {
                    "description": "A primary parent class from which inheritable metaslots are propagated",
                    "type": "string"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent mixin classes from which inheritable metaslots are propagated",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousClassExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "represents_relationship": {
                    "description": "true if this class represents a relationship rather than an entity",
                    "type": "boolean"
                },
                "rules": {
                    "description": "the collection of rules that apply to all members of this class",
                    "items": {
                        "$ref": "#/$defs/ClassRule"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "slot_conditions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "expresses constraints on a group of slots for a class expression",
                    "type": "object"
                },
                "slot_names_unique": {
                    "description": "if true then induced/mangled slot names are not created for class_usage and attributes",
                    "type": "boolean"
                },
                "slot_usage": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "the refinement of a slot in the context of the containing class definition.",
                    "type": "object"
                },
                "slots": {
                    "description": "collection of slot names that are applicable to a class",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "subclass_of": {
                    "description": "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation",
                    "type": "string"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "tree_root": {
                    "description": "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations",
                    "type": "boolean"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unique_keys": {
                    "additionalProperties": {
                        "$ref": "#/$defs/UniqueKey__identifier_optional"
                    },
                    "description": "A collection of named unique keys for this class. Unique keys may be singular or compound.",
                    "type": "object"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [],
            "title": "ClassDefinition",
            "type": "object"
        },
        "ClassRule": {
            "additionalProperties": false,
            "description": "A rule that applies to instances of a class",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "bidirectional": {
                    "description": "in addition to preconditions entailing postconditions, the postconditions entail the preconditions",
                    "type": "boolean"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deactivated": {
                    "description": "a deactivated rule is not executed by the rules engine",
                    "type": "boolean"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "elseconditions": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "an expression that must hold for an instance of the class, if the preconditions no not hold"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "open_world": {
                    "description": "if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these",
                    "type": "boolean"
                },
                "postconditions": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "an expression that must hold for an instance of the class, if the preconditions hold"
                },
                "preconditions": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "an expression that must hold in order for the rule to be applicable to an instance"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "title": "ClassRule",
            "type": "object"
        },
        "EnumDefinition": {
            "additionalProperties": false,
            "description": "an element whose instances must be drawn from a specified set of permissible values",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "code_set": {
                    "description": "the identifier of an enumeration code set.",
                    "type": "string"
                },
                "code_set_tag": {
                    "description": "the version tag of the enumeration code set",
                    "type": "string"
                },
                "code_set_version": {
                    "description": "the version identifier of the enumeration code set",
                    "type": "string"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "concepts": {
                    "description": "A list of identifiers that are used to construct a set of permissible values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "enum_uri": {
                    "description": "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "include": {
                    "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "inherits": {
                    "description": "An enum definition that is used as the basis to create a new enum",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "is_a": {
                    "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded",
                    "type": "string"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "matches": {
                    "$ref": "#/$defs/MatchQuery",
                    "description": "Specifies a match query that is used to calculate the list of permissible values"
                },
                "minus": {
                    "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "permissible_values": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/PermissibleValue__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "A list of possible values for a slot range",
                    "type": "object"
                },
                "pv_formula": {
                    "$ref": "#/$defs/PvFormulaOptions",
                    "description": "Defines the specific formula to be used to generate the permissible values."
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "reachable_from": {
                    "$ref": "#/$defs/ReachabilityQuery",
                    "description": "Specifies a query for obtaining a list of permissible values based on graph reachability"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "title": "EnumDefinition",
            "type": "object"
        },
        "EnumDefinition__identifier_optional": {
            "additionalProperties": false,
            "description": "an element whose instances must be drawn from a specified set of permissible values",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "code_set": {
                    "description": "the identifier of an enumeration code set.",
                    "type": "string"
                },
                "code_set_tag": {
                    "description": "the version tag of the enumeration code set",
                    "type": "string"
                },
                "code_set_version": {
                    "description": "the version identifier of the enumeration code set",
                    "type": "string"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "concepts": {
                    "description": "A list of identifiers that are used to construct a set of permissible values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "enum_uri": {
                    "description": "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "include": {
                    "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "inherits": {
                    "description": "An enum definition that is used as the basis to create a new enum",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "is_a": {
                    "description": "A primary parent class or slot from which inheritable metaslots are propagated from. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded",
                    "type": "string"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "matches": {
                    "$ref": "#/$defs/MatchQuery",
                    "description": "Specifies a match query that is used to calculate the list of permissible values"
                },
                "minus": {
                    "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "permissible_values": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/PermissibleValue__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "A list of possible values for a slot range",
                    "type": "object"
                },
                "pv_formula": {
                    "$ref": "#/$defs/PvFormulaOptions",
                    "description": "Defines the specific formula to be used to generate the permissible values."
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "reachable_from": {
                    "$ref": "#/$defs/ReachabilityQuery",
                    "description": "Specifies a query for obtaining a list of permissible values based on graph reachability"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [],
            "title": "EnumDefinition",
            "type": "object"
        },
        "EnumExpression": {
            "additionalProperties": false,
            "description": "An expression that constrains the range of a slot",
            "properties": {
                "code_set": {
                    "description": "the identifier of an enumeration code set.",
                    "type": "string"
                },
                "code_set_tag": {
                    "description": "the version tag of the enumeration code set",
                    "type": "string"
                },
                "code_set_version": {
                    "description": "the version identifier of the enumeration code set",
                    "type": "string"
                },
                "concepts": {
                    "description": "A list of identifiers that are used to construct a set of permissible values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "include": {
                    "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "inherits": {
                    "description": "An enum definition that is used as the basis to create a new enum",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "matches": {
                    "$ref": "#/$defs/MatchQuery",
                    "description": "Specifies a match query that is used to calculate the list of permissible values"
                },
                "minus": {
                    "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum",
                    "items": {
                        "$ref": "#/$defs/AnonymousEnumExpression"
                    },
                    "type": "array"
                },
                "permissible_values": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/PermissibleValue__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "A list of possible values for a slot range",
                    "type": "object"
                },
                "pv_formula": {
                    "$ref": "#/$defs/PvFormulaOptions",
                    "description": "Defines the specific formula to be used to generate the permissible values."
                },
                "reachable_from": {
                    "$ref": "#/$defs/ReachabilityQuery",
                    "description": "Specifies a query for obtaining a list of permissible values based on graph reachability"
                }
            },
            "title": "EnumExpression",
            "type": "object"
        },
        "Example": {
            "additionalProperties": false,
            "description": "usage example and description",
            "properties": {
                "description": {
                    "description": "description of what the value is doing",
                    "type": "string"
                },
                "object": {
                    "$ref": "#/$defs/Anything",
                    "description": "direct object representation of the example"
                },
                "value": {
                    "description": "example value",
                    "type": "string"
                }
            },
            "title": "Example",
            "type": "object"
        },
        "Extension": {
            "additionalProperties": false,
            "description": "a tag/value pair used to add non-model information to an entry",
            "properties": {
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "tag": {
                    "description": "a tag associated with an extension",
                    "type": "string"
                },
                "value": {
                    "description": "the actual annotation",
                    "type": "string"
                }
            },
            "required": [
                "tag",
                "value"
            ],
            "title": "Extension",
            "type": "object"
        },
        "Extension__identifier_optional": {
            "additionalProperties": false,
            "description": "a tag/value pair used to add non-model information to an entry",
            "properties": {
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "tag": {
                    "description": "a tag associated with an extension",
                    "type": "string"
                },
                "value": {
                    "description": "the actual annotation",
                    "type": "string"
                }
            },
            "required": [
                "value"
            ],
            "title": "Extension",
            "type": "object"
        },
        "ImportExpression": {
            "additionalProperties": false,
            "description": "an expression describing an import",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "import_as": {
                    "type": "string"
                },
                "import_from": {
                    "type": "string"
                },
                "import_map": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Setting__identifier_optional"
                            },
                            {
                                "description": "The value assigned for a setting",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "import_from"
            ],
            "title": "ImportExpression",
            "type": "object"
        },
        "LocalName": {
            "additionalProperties": false,
            "description": "an attributed label",
            "properties": {
                "local_name_source": {
                    "description": "the ncname of the source of the name",
                    "type": "string"
                },
                "local_name_value": {
                    "description": "a name assigned to an element in a given ontology",
                    "type": "string"
                }
            },
            "required": [
                "local_name_source",
                "local_name_value"
            ],
            "title": "LocalName",
            "type": "object"
        },
        "LocalName__identifier_optional": {
            "additionalProperties": false,
            "description": "an attributed label",
            "properties": {
                "local_name_source": {
                    "description": "the ncname of the source of the name",
                    "type": "string"
                },
                "local_name_value": {
                    "description": "a name assigned to an element in a given ontology",
                    "type": "string"
                }
            },
            "required": [
                "local_name_value"
            ],
            "title": "LocalName",
            "type": "object"
        },
        "MatchQuery": {
            "additionalProperties": false,
            "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts",
            "properties": {
                "identifier_pattern": {
                    "description": "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values",
                    "type": "string"
                },
                "source_ontology": {
                    "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values",
                    "type": "string"
                }
            },
            "title": "MatchQuery",
            "type": "object"
        },
        "PathExpression": {
            "additionalProperties": false,
            "description": "An expression that describes an abstract path from an object to another through a sequence of slot lookups",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/PathExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/PathExpression"
                    },
                    "type": "array"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/PathExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "followed_by": {
                    "$ref": "#/$defs/PathExpression",
                    "description": "in a sequential list, this indicates the next member"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/PathExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "range_expression": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "A range that is described as a boolean expression combining existing ranges"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "reversed": {
                    "description": "true if the slot is to be inversed",
                    "type": "boolean"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "traverse": {
                    "description": "the slot to traverse",
                    "type": "string"
                }
            },
            "title": "PathExpression",
            "type": "object"
        },
        "PatternExpression": {
            "additionalProperties": false,
            "description": "a regular expression pattern used to evaluate conformance of a string",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "interpolated": {
                    "description": "if true then the pattern is first string interpolated",
                    "type": "boolean"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "partial_match": {
                    "description": "if true then the pattern must match the whole string, as if enclosed in ^...$",
                    "type": "boolean"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "syntax": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated.",
                    "type": "string"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "title": "PatternExpression",
            "type": "object"
        },
        "PermissibleValue": {
            "additionalProperties": false,
            "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "meaning": {
                    "description": "the value meaning of a permissible value",
                    "type": "string"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "text": {
                    "description": "The actual permissible value itself",
                    "type": "string"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                }
            },
            "required": [
                "text"
            ],
            "title": "PermissibleValue",
            "type": "object"
        },
        "PermissibleValue__identifier_optional": {
            "additionalProperties": false,
            "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "meaning": {
                    "description": "the value meaning of a permissible value",
                    "type": "string"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "text": {
                    "description": "The actual permissible value itself",
                    "type": "string"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                }
            },
            "required": [],
            "title": "PermissibleValue",
            "type": "object"
        },
        "Prefix": {
            "additionalProperties": false,
            "description": "prefix URI tuple",
            "properties": {
                "prefix_prefix": {
                    "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.",
                    "type": "string"
                },
                "prefix_reference": {
                    "description": "The namespace to which a prefix expands to.",
                    "type": "string"
                }
            },
            "required": [
                "prefix_prefix",
                "prefix_reference"
            ],
            "title": "Prefix",
            "type": "object"
        },
        "Prefix__identifier_optional": {
            "additionalProperties": false,
            "description": "prefix URI tuple",
            "properties": {
                "prefix_prefix": {
                    "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.",
                    "type": "string"
                },
                "prefix_reference": {
                    "description": "The namespace to which a prefix expands to.",
                    "type": "string"
                }
            },
            "required": [
                "prefix_reference"
            ],
            "title": "Prefix",
            "type": "object"
        },
        "PresenceEnum": {
            "description": "enumeration of conditions by which a slot value should be set",
            "enum": [
                "UNCOMMITTED",
                "PRESENT",
                "ABSENT"
            ],
            "title": "PresenceEnum",
            "type": "string"
        },
        "PvFormulaOptions": {
            "description": "The formula used to generate the set of permissible values from the code_set values",
            "enum": [
                "CODE",
                "CURIE",
                "URI",
                "FHIR_CODING"
            ],
            "title": "PvFormulaOptions",
            "type": "string"
        },
        "ReachabilityQuery": {
            "additionalProperties": false,
            "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types",
            "properties": {
                "include_self": {
                    "description": "True if the query is reflexive",
                    "type": "boolean"
                },
                "is_direct": {
                    "description": "True if the reachability query should only include directly related nodes, if False then include also transitively connected",
                    "type": "boolean"
                },
                "relationship_types": {
                    "description": "A list of relationship types (properties) that are used in a reachability query",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source_nodes": {
                    "description": "A list of nodes that are used in the reachability query",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source_ontology": {
                    "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values",
                    "type": "string"
                },
                "traverse_up": {
                    "description": "True if the direction of the reachability query is reversed and ancestors are retrieved",
                    "type": "boolean"
                }
            },
            "title": "ReachabilityQuery",
            "type": "object"
        },
        "RelationalRoleEnum": {
            "description": "enumeration of roles a slot on a relationship class can play",
            "enum": [
                "SUBJECT",
                "OBJECT",
                "PREDICATE",
                "NODE",
                "OTHER_ROLE"
            ],
            "title": "RelationalRoleEnum",
            "type": "string"
        },
        "SchemaDefinition": {
            "additionalProperties": false,
            "description": "A collection of definitions that make up a schema or a data model.",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "classes": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/ClassDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "An index to the collection of all class definitions in the schema",
                    "type": "object"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "default_curi_maps": {
                    "description": "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "default_prefix": {
                    "description": "The prefix that is used for all elements within a schema",
                    "type": "string"
                },
                "default_range": {
                    "description": "default slot range to be used if range element is omitted from a slot definition",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "emit_prefixes": {
                    "description": "a list of Curie prefixes that are used in the representation of instances of the model.  All prefixes in this list are added to the prefix sections of the target models.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "enums": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/EnumDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "An index to the collection of all enum definitions in the schema",
                    "type": "object"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "generation_date": {
                    "description": "date and time that the schema was loaded/generated",
                    "format": "date-time",
                    "type": "string"
                },
                "id": {
                    "description": "The official schema URI",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "imports": {
                    "description": "A list of schemas that are to be included in this schema",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "license": {
                    "description": "license for the schema",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "metamodel_version": {
                    "description": "Version of the metamodel used to load the schema",
                    "type": "string"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "a unique name for the schema that is both human-readable and consists of only characters from the NCName set",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "prefixes": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Prefix__identifier_optional"
                            },
                            {
                                "description": "The namespace to which a prefix expands to.",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs",
                    "type": "object"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "settings": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Setting__identifier_optional"
                            },
                            {
                                "description": "The value assigned for a setting",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A collection of global variable settings",
                    "type": "object"
                },
                "slot_names_unique": {
                    "description": "if true then induced/mangled slot names are not created for class_usage and attributes",
                    "type": "boolean"
                },
                "slots": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SlotDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "An index to the collection of all slot definitions in the schema",
                    "type": "object"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "source_file": {
                    "description": "name, uri or description of the source of the schema",
                    "type": "string"
                },
                "source_file_date": {
                    "description": "modification date of the source of the schema",
                    "format": "date-time",
                    "type": "string"
                },
                "source_file_size": {
                    "description": "size in bytes of the source of the schema",
                    "type": "integer"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "subsets": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/SubsetDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "An index to the collection of all subset definitions in the schema",
                    "type": "object"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "types": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/TypeDefinition__identifier_optional"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": "An index to the collection of all type definitions in the schema",
                    "type": "object"
                },
                "version": {
                    "description": "particular version of schema",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "name"
            ],
            "title": "SchemaDefinition",
            "type": "object"
        },
        "Setting": {
            "additionalProperties": false,
            "description": "assignment of a key to a value",
            "properties": {
                "setting_key": {
                    "description": "the variable name for a setting",
                    "type": "string"
                },
                "setting_value": {
                    "description": "The value assigned for a setting",
                    "type": "string"
                }
            },
            "required": [
                "setting_key",
                "setting_value"
            ],
            "title": "Setting",
            "type": "object"
        },
        "Setting__identifier_optional": {
            "additionalProperties": false,
            "description": "assignment of a key to a value",
            "properties": {
                "setting_key": {
                    "description": "the variable name for a setting",
                    "type": "string"
                },
                "setting_value": {
                    "description": "The value assigned for a setting",
                    "type": "string"
                }
            },
            "required": [
                "setting_value"
            ],
            "title": "Setting",
            "type": "object"
        },
        "SlotDefinition": {
            "additionalProperties": false,
            "description": "an element that describes how instances are related to other instances",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "alias": {
                    "description": "the name used for a slot in the context of its owning class.  If present, this is used instead of the actual slot name.",
                    "type": "string"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_members": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with all members satisfying the condition"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "asymmetric": {
                    "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i",
                    "type": "boolean"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "children_are_mutually_disjoint": {
                    "description": "If true then all direct is_a children are mutually disjoint and share no instances in common",
                    "type": "boolean"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "designates_type": {
                    "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition",
                    "type": "boolean"
                },
                "disjoint_with": {
                    "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "domain": {
                    "description": "defines the type of the subject of the slot.  Given the following slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n  X:\n    S1: Y\n\nimplicitly asserts that X is an instance of C1\n",
                    "type": "string"
                },
                "domain_of": {
                    "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "enum_range": {
                    "$ref": "#/$defs/EnumExpression",
                    "description": "An inlined enumeration"
                },
                "equals_expression": {
                    "description": "the value of the slot must equal the value of the evaluated expression",
                    "type": "string"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "has_member": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with at least one member satisfying the condition"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "identifier": {
                    "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container",
                    "type": "boolean"
                },
                "ifabsent": {
                    "description": "function that provides a default value for the slot.  Possible values for this slot are defined in\nlinkml.utils.ifabsent_functions.default_library:\n  * [Tt]rue -- boolean True\n  * [Ff]alse -- boolean False\n  * bnode -- blank node identifier\n  * class_curie -- CURIE for the containing class\n  * class_uri -- URI for the containing class\n  * default_ns -- schema default namespace\n  * default_range -- schema default range\n  * int(value) -- integer value\n  * slot_uri -- URI for the slot\n  * slot_curie -- CURIE for the slot\n  * string(value) -- string value",
                    "type": "string"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "inherited": {
                    "description": "true means that the *value* of a slot is inherited by subclasses",
                    "type": "boolean"
                },
                "inlined": {
                    "description": "True means that keyed or identified slot appears in an outer structure by value.  False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.",
                    "type": "boolean"
                },
                "inlined_as_list": {
                    "description": "True means that an inlined slot is represented as a list of range instances.  False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.",
                    "type": "boolean"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "inverse": {
                    "description": "indicates that any instance of d s r implies that there is also an instance of r s' d",
                    "type": "string"
                },
                "irreflexive": {
                    "description": "If s is irreflexive, then there exists no i such i.s=i",
                    "type": "boolean"
                },
                "is_a": {
                    "description": "A primary parent slot from which inheritable metaslots are propagated",
                    "type": "string"
                },
                "is_class_field": {
                    "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range",
                    "type": "boolean"
                },
                "is_grouping_slot": {
                    "description": "true if this slot is a grouping slot",
                    "type": "boolean"
                },
                "is_usage_slot": {
                    "description": "True means that this slot was defined in a slot_usage situation",
                    "type": "boolean"
                },
                "key": {
                    "description": "True means that the key slot(s) uniquely identify the elements within a single container",
                    "type": "boolean"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "list_elements_ordered": {
                    "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed",
                    "type": "boolean"
                },
                "list_elements_unique": {
                    "description": "If True, then there must be no duplicates in the elements of a multivalued slot",
                    "type": "boolean"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "locally_reflexive": {
                    "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i",
                    "type": "boolean"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "maximum_cardinality": {
                    "description": "the maximum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_cardinality": {
                    "description": "the minimum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "multivalued": {
                    "description": "true means that slot can have more than one value and should be represented using a list or collection structure.",
                    "type": "boolean"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "owner": {
                    "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot",
                    "type": "string"
                },
                "path_rule": {
                    "$ref": "#/$defs/PathExpression",
                    "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "range": {
                    "description": "defines the type of the object of the slot.  Given the following slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n  X:\n    S1: Y\n\nimplicitly asserts Y is an instance of C2\n",
                    "type": "string"
                },
                "range_expression": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "A range that is described as a boolean expression combining existing ranges"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "readonly": {
                    "description": "If present, slot is read only.  Text explains why",
                    "type": "string"
                },
                "recommended": {
                    "description": "true means that the slot should be present in instances of the class definition, but this is not required",
                    "type": "boolean"
                },
                "reflexive": {
                    "description": "If s is reflexive, then i.s=i for all instances i",
                    "type": "boolean"
                },
                "reflexive_transitive_form_of": {
                    "description": "transitive_form_of including the reflexive case",
                    "type": "string"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "relational_role": {
                    "$ref": "#/$defs/RelationalRoleEnum",
                    "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles"
                },
                "required": {
                    "description": "true means that the slot must be present in instances of the class definition",
                    "type": "boolean"
                },
                "role": {
                    "description": "a textual descriptor that indicates the role played by the slot range",
                    "type": "string"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "shared": {
                    "description": "If True, then the relationship between the slot domain and range is many to one or many to many",
                    "type": "boolean"
                },
                "singular_name": {
                    "description": "a name that is used in the singular form",
                    "type": "string"
                },
                "slot_group": {
                    "description": "allows for grouping of related slots into a grouping slot that serves the role of a group",
                    "type": "string"
                },
                "slot_uri": {
                    "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.",
                    "type": "string"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "subproperty_of": {
                    "description": "Ontology property which this slot is a subproperty of.  Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "type": "string"
                },
                "symmetric": {
                    "description": "If s is symmetric, and i.s=v, then v.s=i",
                    "type": "boolean"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "transitive": {
                    "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j",
                    "type": "boolean"
                },
                "transitive_form_of": {
                    "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive",
                    "type": "string"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                },
                "usage_slot_name": {
                    "description": "The name of the slot referenced in the slot_usage",
                    "type": "string"
                },
                "value_presence": {
                    "$ref": "#/$defs/PresenceEnum",
                    "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "title": "SlotDefinition",
            "type": "object"
        },
        "SlotDefinition__identifier_optional": {
            "additionalProperties": false,
            "description": "an element that describes how instances are related to other instances",
            "properties": {
                "abstract": {
                    "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.",
                    "type": "boolean"
                },
                "alias": {
                    "description": "the name used for a slot in the context of its owning class.  If present, this is used instead of the actual slot name.",
                    "type": "string"
                },
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_members": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with all members satisfying the condition"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "apply_to": {
                    "description": "Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "asymmetric": {
                    "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i",
                    "type": "boolean"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "children_are_mutually_disjoint": {
                    "description": "If true then all direct is_a children are mutually disjoint and share no instances in common",
                    "type": "boolean"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "designates_type": {
                    "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition",
                    "type": "boolean"
                },
                "disjoint_with": {
                    "description": "Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "domain": {
                    "description": "defines the type of the subject of the slot.  Given the following slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n  X:\n    S1: Y\n\nimplicitly asserts that X is an instance of C1\n",
                    "type": "string"
                },
                "domain_of": {
                    "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "enum_range": {
                    "$ref": "#/$defs/EnumExpression",
                    "description": "An inlined enumeration"
                },
                "equals_expression": {
                    "description": "the value of the slot must equal the value of the evaluated expression",
                    "type": "string"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "has_member": {
                    "$ref": "#/$defs/AnonymousSlotExpression",
                    "description": "the value of the slot is multivalued with at least one member satisfying the condition"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "identifier": {
                    "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container",
                    "type": "boolean"
                },
                "ifabsent": {
                    "description": "function that provides a default value for the slot.  Possible values for this slot are defined in\nlinkml.utils.ifabsent_functions.default_library:\n  * [Tt]rue -- boolean True\n  * [Ff]alse -- boolean False\n  * bnode -- blank node identifier\n  * class_curie -- CURIE for the containing class\n  * class_uri -- URI for the containing class\n  * default_ns -- schema default namespace\n  * default_range -- schema default range\n  * int(value) -- integer value\n  * slot_uri -- URI for the slot\n  * slot_curie -- CURIE for the slot\n  * string(value) -- string value",
                    "type": "string"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "inherited": {
                    "description": "true means that the *value* of a slot is inherited by subclasses",
                    "type": "boolean"
                },
                "inlined": {
                    "description": "True means that keyed or identified slot appears in an outer structure by value.  False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.",
                    "type": "boolean"
                },
                "inlined_as_list": {
                    "description": "True means that an inlined slot is represented as a list of range instances.  False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.",
                    "type": "boolean"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "inverse": {
                    "description": "indicates that any instance of d s r implies that there is also an instance of r s' d",
                    "type": "string"
                },
                "irreflexive": {
                    "description": "If s is irreflexive, then there exists no i such i.s=i",
                    "type": "boolean"
                },
                "is_a": {
                    "description": "A primary parent slot from which inheritable metaslots are propagated",
                    "type": "string"
                },
                "is_class_field": {
                    "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range",
                    "type": "boolean"
                },
                "is_grouping_slot": {
                    "description": "true if this slot is a grouping slot",
                    "type": "boolean"
                },
                "is_usage_slot": {
                    "description": "True means that this slot was defined in a slot_usage situation",
                    "type": "boolean"
                },
                "key": {
                    "description": "True means that the key slot(s) uniquely identify the elements within a single container",
                    "type": "boolean"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "list_elements_ordered": {
                    "description": "If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed",
                    "type": "boolean"
                },
                "list_elements_unique": {
                    "description": "If True, then there must be no duplicates in the elements of a multivalued slot",
                    "type": "boolean"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "locally_reflexive": {
                    "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i",
                    "type": "boolean"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "maximum_cardinality": {
                    "description": "the maximum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_cardinality": {
                    "description": "the minimum number of entries for a multivalued slot",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "mixin": {
                    "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.",
                    "type": "boolean"
                },
                "mixins": {
                    "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "multivalued": {
                    "description": "true means that slot can have more than one value and should be represented using a list or collection structure.",
                    "type": "boolean"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousSlotExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "owner": {
                    "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot",
                    "type": "string"
                },
                "path_rule": {
                    "$ref": "#/$defs/PathExpression",
                    "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "range": {
                    "description": "defines the type of the object of the slot.  Given the following slot definition\n  S1:\n    domain: C1\n    range:  C2\nthe declaration\n  X:\n    S1: Y\n\nimplicitly asserts Y is an instance of C2\n",
                    "type": "string"
                },
                "range_expression": {
                    "$ref": "#/$defs/AnonymousClassExpression",
                    "description": "A range that is described as a boolean expression combining existing ranges"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "readonly": {
                    "description": "If present, slot is read only.  Text explains why",
                    "type": "string"
                },
                "recommended": {
                    "description": "true means that the slot should be present in instances of the class definition, but this is not required",
                    "type": "boolean"
                },
                "reflexive": {
                    "description": "If s is reflexive, then i.s=i for all instances i",
                    "type": "boolean"
                },
                "reflexive_transitive_form_of": {
                    "description": "transitive_form_of including the reflexive case",
                    "type": "string"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "relational_role": {
                    "$ref": "#/$defs/RelationalRoleEnum",
                    "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles"
                },
                "required": {
                    "description": "true means that the slot must be present in instances of the class definition",
                    "type": "boolean"
                },
                "role": {
                    "description": "a textual descriptor that indicates the role played by the slot range",
                    "type": "string"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "shared": {
                    "description": "If True, then the relationship between the slot domain and range is many to one or many to many",
                    "type": "boolean"
                },
                "singular_name": {
                    "description": "a name that is used in the singular form",
                    "type": "string"
                },
                "slot_group": {
                    "description": "allows for grouping of related slots into a grouping slot that serves the role of a group",
                    "type": "string"
                },
                "slot_uri": {
                    "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.",
                    "type": "string"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "string_serialization": {
                    "description": "Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots.\nWe call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion.\nImplementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects\nFor example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "subproperty_of": {
                    "description": "Ontology property which this slot is a subproperty of.  Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "type": "string"
                },
                "symmetric": {
                    "description": "If s is symmetric, and i.s=v, then v.s=i",
                    "type": "boolean"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "transitive": {
                    "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j",
                    "type": "boolean"
                },
                "transitive_form_of": {
                    "description": "If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive",
                    "type": "string"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                },
                "usage_slot_name": {
                    "description": "The name of the slot referenced in the slot_usage",
                    "type": "string"
                },
                "value_presence": {
                    "$ref": "#/$defs/PresenceEnum",
                    "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)"
                },
                "values_from": {
                    "description": "The identifier of a \"value set\" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set.  Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [],
            "title": "SlotDefinition",
            "type": "object"
        },
        "StructuredAlias": {
            "additionalProperties": false,
            "description": "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "The category or categories of an alias. This can be drawn from any relevant vocabulary",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "literal_form": {
                    "description": "The literal lexical form of a structured alias; i.e the actual alias value.",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "predicate": {
                    "$ref": "#/$defs/AliasPredicateEnum",
                    "description": "The relationship between an element and its alias."
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "literal_form"
            ],
            "title": "StructuredAlias",
            "type": "object"
        },
        "SubsetDefinition": {
            "additionalProperties": false,
            "description": "an element that can be used to group other metamodel elements",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "title": "SubsetDefinition",
            "type": "object"
        },
        "SubsetDefinition__identifier_optional": {
            "additionalProperties": false,
            "description": "an element that can be used to group other metamodel elements",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [],
            "title": "SubsetDefinition",
            "type": "object"
        },
        "TypeDefinition": {
            "additionalProperties": false,
            "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "base": {
                    "description": "python base type in the LinkML runtime that implements this type definition",
                    "type": "string"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "repr": {
                    "description": "the name of the python object that implements this type definition",
                    "type": "string"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "typeof": {
                    "description": "A parent type from which type properties are inherited",
                    "type": "string"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                },
                "uri": {
                    "description": "The uri that defines the possible values for the type definition",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "TypeDefinition",
            "type": "object"
        },
        "TypeDefinition__identifier_optional": {
            "additionalProperties": false,
            "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "all_of": {
                    "description": "holds if all of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "any_of": {
                    "description": "holds if at least one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "base": {
                    "description": "python base type in the LinkML runtime that implements this type definition",
                    "type": "string"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "conforms_to": {
                    "description": "An established standard to which the element conforms.",
                    "type": "string"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "definition_uri": {
                    "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "equals_number": {
                    "description": "the slot must have range of a number and the value of the slot must equal the specified value",
                    "type": "integer"
                },
                "equals_string": {
                    "description": "the slot must have range string and the value of the slot must equal the specified value",
                    "type": "string"
                },
                "equals_string_in": {
                    "description": "the slot must have range string and the value of the slot must equal one of the specified values",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "exactly_one_of": {
                    "description": "holds if only one of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "id_prefixes": {
                    "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implements": {
                    "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "implicit_prefix": {
                    "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "instantiates": {
                    "description": "An element in another schema which this element instantiates.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "local_names": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/LocalName__identifier_optional"
                            },
                            {
                                "description": "a name assigned to an element in a given ontology",
                                "type": "string"
                            }
                        ]
                    },
                    "type": "object"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "maximum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or lowe than this",
                    "type": "integer"
                },
                "minimum_value": {
                    "description": "for slots with ranges of type number, the value must be equal to or higher than this",
                    "type": "integer"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "name": {
                    "description": "the unique name of the element within the context of the schema.  Name is combined with the default prefix to form the globally unique subject of the target class.",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "none_of": {
                    "description": "holds if none of the expressions hold",
                    "items": {
                        "$ref": "#/$defs/AnonymousTypeExpression"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "pattern": {
                    "description": "the string value of the slot must conform to this regular expression expressed in the string",
                    "type": "string"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "repr": {
                    "description": "the name of the python object that implements this type definition",
                    "type": "string"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "structured_pattern": {
                    "$ref": "#/$defs/PatternExpression",
                    "description": "the string value of the slot must conform to the regular expression in the pattern expression"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "typeof": {
                    "description": "A parent type from which type properties are inherited",
                    "type": "string"
                },
                "union_of": {
                    "description": "indicates that the domain element consists exactly of the members of the element in the range.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unit": {
                    "$ref": "#/$defs/UnitOfMeasure",
                    "description": "an encoding of a unit"
                },
                "uri": {
                    "description": "The uri that defines the possible values for the type definition",
                    "type": "string"
                }
            },
            "required": [],
            "title": "TypeDefinition",
            "type": "object"
        },
        "UniqueKey": {
            "additionalProperties": false,
            "description": "a collection of slots whose values uniquely identify an instance of a class",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "consider_nulls_inequal": {
                    "description": "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False.",
                    "type": "boolean"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unique_key_name": {
                    "description": "name of the unique key",
                    "type": "string"
                },
                "unique_key_slots": {
                    "description": "list of slot names that form a key. The tuple formed from the values of all these slots should be unique.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "unique_key_name",
                "unique_key_slots"
            ],
            "title": "UniqueKey",
            "type": "object"
        },
        "UniqueKey__identifier_optional": {
            "additionalProperties": false,
            "description": "a collection of slots whose values uniquely identify an instance of a class",
            "properties": {
                "aliases": {
                    "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "alt_descriptions": {
                    "additionalProperties": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/AltDescription__identifier_optional"
                            },
                            {
                                "description": "text of an attributed description",
                                "type": "string"
                            }
                        ]
                    },
                    "description": "A sourced alternative description for an element",
                    "type": "object"
                },
                "annotations": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Annotation__identifier_optional"
                    },
                    "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
                    "type": "object"
                },
                "broad_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "categories": {
                    "description": "Controlled terms used to categorize an element.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "close_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have close meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "comments": {
                    "description": "notes and comments about an element intended primarily for external consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "consider_nulls_inequal": {
                    "description": "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False.",
                    "type": "boolean"
                },
                "contributors": {
                    "description": "agent that contributed to the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "created_by": {
                    "description": "agent that created the element",
                    "type": "string"
                },
                "created_on": {
                    "description": "time at which the element was created",
                    "format": "date-time",
                    "type": "string"
                },
                "deprecated": {
                    "description": "Description of why and when this element will no longer be used",
                    "type": "string"
                },
                "deprecated_element_has_exact_replacement": {
                    "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
                    "type": "string"
                },
                "deprecated_element_has_possible_replacement": {
                    "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
                    "type": "string"
                },
                "description": {
                    "description": "a textual description of the element's purpose and use",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "examples": {
                    "description": "example usages of an element",
                    "items": {
                        "$ref": "#/$defs/Example"
                    },
                    "type": "array"
                },
                "extensions": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Extension__identifier_optional"
                    },
                    "description": "a tag/text tuple attached to an arbitrary element",
                    "type": "object"
                },
                "from_schema": {
                    "description": "id of the schema that defined the element",
                    "type": "string"
                },
                "imported_from": {
                    "description": "the imports entry that this element was derived from.  Empty means primary source",
                    "type": "string"
                },
                "in_language": {
                    "description": "the primary language used in the sources",
                    "type": "string"
                },
                "in_subset": {
                    "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "keywords": {
                    "description": "Keywords or tags used to describe the element",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "last_updated_on": {
                    "description": "time at which the element was last updated",
                    "format": "date-time",
                    "type": "string"
                },
                "mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "modified_by": {
                    "description": "agent that modified the element",
                    "type": "string"
                },
                "narrow_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "notes": {
                    "description": "editorial notes about an element intended primarily for internal consumption",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "rank": {
                    "description": "the relative order in which the element occurs, lower values are given precedence",
                    "type": "integer"
                },
                "related_mappings": {
                    "description": "A list of terms from different schemas or terminology systems that have related meaning.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "see_also": {
                    "description": "A list of related entities or URLs that may be of relevance",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "source": {
                    "description": "A related resource from which the element is derived.",
                    "type": "string"
                },
                "status": {
                    "description": "status of the element",
                    "type": "string"
                },
                "structured_aliases": {
                    "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
                    "items": {
                        "$ref": "#/$defs/StructuredAlias"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
                    "type": "string"
                },
                "todos": {
                    "description": "Outstanding issues that needs resolution",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "unique_key_name": {
                    "description": "name of the unique key",
                    "type": "string"
                },
                "unique_key_slots": {
                    "description": "list of slot names that form a key. The tuple formed from the values of all these slots should be unique.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "unique_key_slots"
            ],
            "title": "UniqueKey",
            "type": "object"
        },
        "UnitOfMeasure": {
            "additionalProperties": false,
            "description": "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension).",
            "properties": {
                "abbreviation": {
                    "description": "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)",
                    "type": "string"
                },
                "derivation": {
                    "description": "Expression for deriving this unit from other units",
                    "type": "string"
                },
                "descriptive_name": {
                    "description": "the spelled out name of the unit, for example, meter",
                    "type": "string"
                },
                "exact_mappings": {
                    "description": "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "has_quantity_kind": {
                    "description": "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length",
                    "type": "string"
                },
                "iec61360code": {
                    "type": "string"
                },
                "symbol": {
                    "description": "name of the unit encoded as a symbol",
                    "type": "string"
                },
                "ucum_code": {
                    "description": "associates a QUDT unit with its UCUM code (case-sensitive).",
                    "type": "string"
                }
            },
            "title": "UnitOfMeasure",
            "type": "object"
        }
    },
    "$id": "https://w3id.org/linkml/meta",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": true,
    "description": "A collection of definitions that make up a schema or a data model.",
    "metamodel_version": "1.7.0",
    "properties": {
        "aliases": {
            "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "alt_descriptions": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/AltDescription__identifier_optional"
                    },
                    {
                        "description": "text of an attributed description",
                        "type": "string"
                    }
                ]
            },
            "description": "A sourced alternative description for an element",
            "type": "object"
        },
        "annotations": {
            "additionalProperties": {
                "$ref": "#/$defs/Annotation__identifier_optional"
            },
            "description": "a collection of tag/text tuples with the semantics of OWL Annotation",
            "type": "object"
        },
        "broad_mappings": {
            "description": "A list of terms from different schemas or terminology systems that have broader meaning.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "categories": {
            "description": "Controlled terms used to categorize an element.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "classes": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/ClassDefinition__identifier_optional"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "description": "An index to the collection of all class definitions in the schema",
            "type": "object"
        },
        "close_mappings": {
            "description": "A list of terms from different schemas or terminology systems that have close meaning.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "comments": {
            "description": "notes and comments about an element intended primarily for external consumption",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "conforms_to": {
            "description": "An established standard to which the element conforms.",
            "type": "string"
        },
        "contributors": {
            "description": "agent that contributed to the element",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "created_by": {
            "description": "agent that created the element",
            "type": "string"
        },
        "created_on": {
            "description": "time at which the element was created",
            "format": "date-time",
            "type": "string"
        },
        "default_curi_maps": {
            "description": "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "default_prefix": {
            "description": "The prefix that is used for all elements within a schema",
            "type": "string"
        },
        "default_range": {
            "description": "default slot range to be used if range element is omitted from a slot definition",
            "type": "string"
        },
        "definition_uri": {
            "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri",
            "type": "string"
        },
        "deprecated": {
            "description": "Description of why and when this element will no longer be used",
            "type": "string"
        },
        "deprecated_element_has_exact_replacement": {
            "description": "When an element is deprecated, it can be automatically replaced by this uri or curie",
            "type": "string"
        },
        "deprecated_element_has_possible_replacement": {
            "description": "When an element is deprecated, it can be potentially replaced by this uri or curie",
            "type": "string"
        },
        "description": {
            "description": "a textual description of the element's purpose and use",
            "type": "string"
        },
        "emit_prefixes": {
            "description": "a list of Curie prefixes that are used in the representation of instances of the model.  All prefixes in this list are added to the prefix sections of the target models.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "enums": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/EnumDefinition__identifier_optional"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "description": "An index to the collection of all enum definitions in the schema",
            "type": "object"
        },
        "exact_mappings": {
            "description": "A list of terms from different schemas or terminology systems that have identical meaning.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "examples": {
            "description": "example usages of an element",
            "items": {
                "$ref": "#/$defs/Example"
            },
            "type": "array"
        },
        "extensions": {
            "additionalProperties": {
                "$ref": "#/$defs/Extension__identifier_optional"
            },
            "description": "a tag/text tuple attached to an arbitrary element",
            "type": "object"
        },
        "from_schema": {
            "description": "id of the schema that defined the element",
            "type": "string"
        },
        "generation_date": {
            "description": "date and time that the schema was loaded/generated",
            "format": "date-time",
            "type": "string"
        },
        "id": {
            "description": "The official schema URI",
            "type": "string"
        },
        "id_prefixes": {
            "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "implements": {
            "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "imported_from": {
            "description": "the imports entry that this element was derived from.  Empty means primary source",
            "type": "string"
        },
        "imports": {
            "description": "A list of schemas that are to be included in this schema",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "in_language": {
            "description": "the primary language used in the sources",
            "type": "string"
        },
        "in_subset": {
            "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "instantiates": {
            "description": "An element in another schema which this element instantiates.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "keywords": {
            "description": "Keywords or tags used to describe the element",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "last_updated_on": {
            "description": "time at which the element was last updated",
            "format": "date-time",
            "type": "string"
        },
        "license": {
            "description": "license for the schema",
            "type": "string"
        },
        "local_names": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/LocalName__identifier_optional"
                    },
                    {
                        "description": "a name assigned to an element in a given ontology",
                        "type": "string"
                    }
                ]
            },
            "type": "object"
        },
        "mappings": {
            "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "metamodel_version": {
            "description": "Version of the metamodel used to load the schema",
            "type": "string"
        },
        "modified_by": {
            "description": "agent that modified the element",
            "type": "string"
        },
        "name": {
            "description": "a unique name for the schema that is both human-readable and consists of only characters from the NCName set",
            "type": "string"
        },
        "narrow_mappings": {
            "description": "A list of terms from different schemas or terminology systems that have narrower meaning.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "notes": {
            "description": "editorial notes about an element intended primarily for internal consumption",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "prefixes": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/Prefix__identifier_optional"
                    },
                    {
                        "description": "The namespace to which a prefix expands to.",
                        "type": "string"
                    }
                ]
            },
            "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs",
            "type": "object"
        },
        "rank": {
            "description": "the relative order in which the element occurs, lower values are given precedence",
            "type": "integer"
        },
        "related_mappings": {
            "description": "A list of terms from different schemas or terminology systems that have related meaning.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "see_also": {
            "description": "A list of related entities or URLs that may be of relevance",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "settings": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/Setting__identifier_optional"
                    },
                    {
                        "description": "The value assigned for a setting",
                        "type": "string"
                    }
                ]
            },
            "description": "A collection of global variable settings",
            "type": "object"
        },
        "slot_names_unique": {
            "description": "if true then induced/mangled slot names are not created for class_usage and attributes",
            "type": "boolean"
        },
        "slots": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/SlotDefinition__identifier_optional"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "description": "An index to the collection of all slot definitions in the schema",
            "type": "object"
        },
        "source": {
            "description": "A related resource from which the element is derived.",
            "type": "string"
        },
        "source_file": {
            "description": "name, uri or description of the source of the schema",
            "type": "string"
        },
        "source_file_date": {
            "description": "modification date of the source of the schema",
            "format": "date-time",
            "type": "string"
        },
        "source_file_size": {
            "description": "size in bytes of the source of the schema",
            "type": "integer"
        },
        "status": {
            "description": "status of the element",
            "type": "string"
        },
        "structured_aliases": {
            "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.",
            "items": {
                "$ref": "#/$defs/StructuredAlias"
            },
            "type": "array"
        },
        "subsets": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/SubsetDefinition__identifier_optional"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "description": "An index to the collection of all subset definitions in the schema",
            "type": "object"
        },
        "title": {
            "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.",
            "type": "string"
        },
        "todos": {
            "description": "Outstanding issues that needs resolution",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "types": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/TypeDefinition__identifier_optional"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "description": "An index to the collection of all type definitions in the schema",
            "type": "object"
        },
        "version": {
            "description": "particular version of schema",
            "type": "string"
        }
    },
    "required": [
        "id",
        "name"
    ],
    "title": "meta",
    "type": "object",
    "version": "2.0.0"
}