// an attributed description
message AltDescription
 {
  optional source Ncname = 1
  description String = 2
 }
// the definition of a class or interface
message ClassDefinition
 {
  repeated idPrefixes Ncname = 1
  optional name String = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  repeated mappings Uriorcurie = 6
  optional description String = 7
  repeated altDescriptions AltDescription = 8
  optional deprecated String = 9
  repeated todos String = 10
  repeated notes String = 11
  repeated comments String = 12
  repeated examples Example = 13
  repeated inSubset SubsetDefinition = 14
  optional fromSchema Uri = 15
  optional importedFrom String = 16
  repeated seeAlso Uriorcurie = 17
  repeated exactMappings Uriorcurie = 18
  repeated closeMappings Uriorcurie = 19
  repeated relatedMappings Uriorcurie = 20
  optional deprecatedElementHasExactReplacement Uriorcurie = 21
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 22
  optional isA ClassDefinition = 23
  optional abstract Boolean = 24
  optional mixin Boolean = 25
  repeated mixins ClassDefinition = 26
  repeated applyTo ClassDefinition = 27
  repeated valuesFrom Uriorcurie = 28
  repeated slots SlotDefinition = 29
  repeated slotUsage SlotDefinition = 30
  optional classUri Uriorcurie = 31
  optional subclassOf Uriorcurie = 32
  repeated unionOf ClassDefinition = 33
  repeated definingSlots SlotDefinition = 34
 }
// usage example and description
message Example
 {
  optional value String = 1
  optional description String = 2
 }
// an attributed label
message LocalName
 {
  optional localNameSource Ncname = 1
  localNameValue String = 2
 }
// prefix URI tuple
message Prefix
 {
  optional prefixPrefix Ncname = 1
  prefixReference Uri = 2
 }
// a collection of subset, type, slot and class definitions
message SchemaDefinition
 {
  repeated idPrefixes Ncname = 1
  optional name String = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  repeated mappings Uriorcurie = 6
  optional description String = 7
  repeated altDescriptions AltDescription = 8
  optional deprecated String = 9
  repeated todos String = 10
  repeated notes String = 11
  repeated comments String = 12
  repeated examples Example = 13
  repeated inSubset SubsetDefinition = 14
  optional fromSchema Uri = 15
  optional importedFrom String = 16
  repeated seeAlso Uriorcurie = 17
  repeated exactMappings Uriorcurie = 18
  repeated closeMappings Uriorcurie = 19
  repeated relatedMappings Uriorcurie = 20
  optional deprecatedElementHasExactReplacement Uriorcurie = 21
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 22
  id Uri = 23
  optional title String = 24
  optional version String = 25
  repeated imports Uriorcurie = 26
  optional license String = 27
  repeated prefixes Prefix = 28
  repeated emitPrefixes Ncname = 29
  repeated defaultCuriMaps String = 30
  optional defaultPrefix String = 31
  optional defaultRange TypeDefinition = 32
  repeated subsets SubsetDefinition = 33
  repeated types TypeDefinition = 34
  repeated slots SlotDefinition = 35
  repeated classes ClassDefinition = 36
  optional metamodelVersion String = 37
  optional sourceFile String = 38
  optional sourceFileDate Datetime = 39
  optional sourceFileSize Integer = 40
  optional generationDate Datetime = 41
 }
// the definition of a property or a slot
message SlotDefinition
 {
  repeated idPrefixes Ncname = 1
  optional name String = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  repeated mappings Uriorcurie = 6
  optional description String = 7
  repeated altDescriptions AltDescription = 8
  optional deprecated String = 9
  repeated todos String = 10
  repeated notes String = 11
  repeated comments String = 12
  repeated examples Example = 13
  repeated inSubset SubsetDefinition = 14
  optional fromSchema Uri = 15
  optional importedFrom String = 16
  repeated seeAlso Uriorcurie = 17
  repeated exactMappings Uriorcurie = 18
  repeated closeMappings Uriorcurie = 19
  repeated relatedMappings Uriorcurie = 20
  optional deprecatedElementHasExactReplacement Uriorcurie = 21
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 22
  optional isA SlotDefinition = 23
  optional abstract Boolean = 24
  optional mixin Boolean = 25
  repeated mixins SlotDefinition = 26
  repeated applyTo SlotDefinition = 27
  repeated valuesFrom Uriorcurie = 28
  optional singularName String = 29
  optional domain ClassDefinition = 30
  optional range Element = 31
  optional slotUri Uriorcurie = 32
  optional multivalued Boolean = 33
  optional inherited Boolean = 34
  optional readonly String = 35
  optional ifabsent String = 36
  optional required Boolean = 37
  optional inlined Boolean = 38
  optional key Boolean = 39
  optional identifier Boolean = 40
  optional alias String = 41
  optional owner Definition = 42
  optional subpropertyOf Uriorcurie = 43
  optional symmetric Boolean = 44
  optional inverse SlotDefinition = 45
  optional isClassField Boolean = 46
  optional role String = 47
  optional isUsageSlot Boolean = 48
 }
// the name and description of a subset
message SubsetDefinition
 {
  repeated idPrefixes Ncname = 1
  optional name String = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  repeated mappings Uriorcurie = 6
  optional description String = 7
  repeated altDescriptions AltDescription = 8
  optional deprecated String = 9
  repeated todos String = 10
  repeated notes String = 11
  repeated comments String = 12
  repeated examples Example = 13
  repeated inSubset SubsetDefinition = 14
  optional fromSchema Uri = 15
  optional importedFrom String = 16
  repeated seeAlso Uriorcurie = 17
  repeated exactMappings Uriorcurie = 18
  repeated closeMappings Uriorcurie = 19
  repeated relatedMappings Uriorcurie = 20
  optional deprecatedElementHasExactReplacement Uriorcurie = 21
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 22
 }
// A data type definition.
message TypeDefinition
 {
  repeated idPrefixes Ncname = 1
  optional name String = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  repeated mappings Uriorcurie = 6
  optional description String = 7
  repeated altDescriptions AltDescription = 8
  optional deprecated String = 9
  repeated todos String = 10
  repeated notes String = 11
  repeated comments String = 12
  repeated examples Example = 13
  repeated inSubset SubsetDefinition = 14
  optional fromSchema Uri = 15
  optional importedFrom String = 16
  repeated seeAlso Uriorcurie = 17
  repeated exactMappings Uriorcurie = 18
  repeated closeMappings Uriorcurie = 19
  repeated relatedMappings Uriorcurie = 20
  optional deprecatedElementHasExactReplacement Uriorcurie = 21
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 22
  optional typeof TypeDefinition = 23
  optional base String = 24
  optional uri Uriorcurie = 25
  optional repr String = 26
 }

