Metadata Specification
$id | https://raw.githubusercontent.com/verona-interfaces/metadata/master/schema/verona-module-metadata.json |
---|---|
$schema | http://json-schema.org/draft-07/schema# |
Properties
Name | Type | |
---|---|---|
type | String | |
id | String | |
name | Array | |
description | Array | |
version | String | |
specVersion | String | |
metadataVersion | String | |
notSupportedFeatures | Array | |
dependencies | Array | |
maintainer | Object | |
code | Object |
type
Title | Verona Module Type | |
---|---|---|
Type | String | |
Required | Yes | |
Enum |
|
id
Title | Identifier | |
---|---|---|
Description | The id will be used as reference by any application using this module | |
Type | String | |
Required | Yes | |
Pattern | ^[A-Za-z][A-Za-z0-9_-]*$ |
name
Title | Name | |
---|---|---|
Description | Name to be used in lists or forms when the identifier is too short | |
Type | Array | |
Required | Yes | |
Min Items | 1 |
description
Title | Description | |
---|---|---|
Description | The description should include any use case and should refer to used data formats. | |
Type | Array | |
Required | No | |
Min Items | 1 |
version
Title | Version in SemVer2 notation | |
---|---|---|
Description | Semantic Versioning 2.0.0 required (MAJOR.MINOR.PATCH). | |
Type | String | |
Required | Yes | |
Pattern | ^(0|[1-9].(0|[1-9].(0|[1-9](?:-((?:0|[1-9]a-zA-Z-][0-9a-zA-Z-])(?:.(?:0|[1-9]a-zA-Z-][0-9a-zA-Z-]))))?(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)))?$ | |
Examples |
|
specVersion
Title | Version of Supported Module Specification | |
---|---|---|
Description | Version of the Verona specification supported by this module in the form 'MAJOR.MINOR'. | |
Type | String | |
Required | Yes | |
Pattern | ^(0|[1-9].(0|[1-9]$ | |
Examples |
|
metadataVersion
Title | Version of Supported Metadata Specification | |
---|---|---|
Description | Version of the Verona Metadata specification supported by this metadata in the form of 'MAJOR.MINOR'. | |
Type | String | |
Required | Yes | |
Pattern | ^(0|[1-9].(0|[1-9]$ | |
Examples |
|
notSupportedFeatures
Title | List of all features not supported | |
---|---|---|
Description | Use the predefined keys to name not supported features. | |
Type | Array | |
Required | No | |
Unique Items | true | |
Min Items | 1 |
dependencies
Title | Dependencies | |
---|---|---|
Description | Packages needed during runtime. | |
Type | Array | |
Required | No |
maintainer
Title | Maintainer | |
---|---|---|
Description | Maintainer of the verona module | |
Type | Object | |
Required | No |
Properties
Name | Type | |
---|---|---|
name | Array | |
url | String | |
String |
maintainer.name
Title | Name | |
---|---|---|
Description | Name of maintainer | |
Type | Array | |
Required | No | |
Min Items | 1 |
maintainer.url
Title | URL | |
---|---|---|
Type | String | |
Required | No | |
Format | uri |
maintainer.email
Title | ||
---|---|---|
Type | String | |
Required | No | |
Format |
code
Title | Code | |
---|---|---|
Description | Data about source code | |
Type | Object | |
Required | No |
Properties
Name | Type | |
---|---|---|
repositoryType | String | |
repositoryUrl | String | |
licenseType | String | |
licenseUrl | String |
code.repositoryType
Title | Repository Type | |
---|---|---|
Type | String | |
Required | No | |
Default | git | |
Examples |
|
code.repositoryUrl
Title | Repository Url | |
---|---|---|
Type | String | |
Required | No | |
Format | uri |
code.licenseType
Title | License Type | |
---|---|---|
Type | String | |
Required | No | |
Default | MIT | |
Examples |
|
code.licenseUrl
Title | License Url | |
---|---|---|
Type | String | |
Required | No | |
Default | https://opensource.org/licenses/MIT | |
Format | uri |
Schema
{
"$id": "https://raw.githubusercontent.com/verona-interfaces/metadata/master/schema/verona-module-metadata.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Verona Interfaces Module Metadata",
"type": "object",
"default": {
"$schema": "https://raw.githubusercontent.com/verona-interfaces/metadata/master/schema/verona-module-metadata.json"
},
"properties": {
"type": {
"title": "Verona Module Type",
"type": "string",
"enum": [
"editor",
"player",
"schemer",
"coder"
]
},
"id": {
"title": "Identifier",
"description": "The id will be used as reference by any application using this module",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
},
"name": {
"title": "Name",
"description": "Name to be used in lists or forms when the identifier is too short",
"$ref": "#/$defs/languageTaggedStrings"
},
"description": {
"title": "Description",
"description": "The description should include any use case and should refer to used data formats.",
"$ref": "#/$defs/languageTaggedStrings"
},
"version": {
"title": "Version in SemVer2 notation",
"description": "Semantic Versioning 2.0.0 required (MAJOR.MINOR.PATCH).",
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"examples": [
"1.5.2",
"0.12.4-beta",
"12.0.0-rc.1"
]
},
"specVersion": {
"title": "Version of Supported Module Specification",
"description": "Version of the Verona specification supported by this module in the form 'MAJOR.MINOR'.",
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
"examples": [
"1.5",
"4.12"
]
},
"metadataVersion": {
"title": "Version of Supported Metadata Specification",
"description": "Version of the Verona Metadata specification supported by this metadata in the form of 'MAJOR.MINOR'.",
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
"examples": [
"1.5",
"4.12"
]
},
"notSupportedFeatures": {
"title": "List of all features not supported",
"description": "Use the predefined keys to name not supported features.",
"type": "array",
"items": {
"type": "string",
"enum": [
"focus-notify",
"log-policy",
"paging-mode",
"navigation-denied",
"variable-data"
]
},
"minItems": 1,
"uniqueItems": true
},
"dependencies": {
"title": "Dependencies",
"description": "Packages needed during runtime.",
"$ref": "#/$defs/dependencies"
},
"maintainer": {
"title": "Maintainer",
"description": "Maintainer of the verona module",
"type": "object",
"properties": {
"name": {
"title": "Name",
"description": "Name of maintainer",
"$ref": "#/$defs/languageTaggedStrings"
},
"url": {
"title": "URL",
"type": "string",
"format": "uri"
},
"email": {
"title": "E-Mail",
"type": "string",
"format": "email"
}
}
},
"code": {
"title": "Code",
"description": "Data about source code",
"type": "object",
"properties": {
"repositoryType": {
"title": "Repository Type",
"type": "string",
"default": "git",
"examples": [
"svn",
"mercurial"
]
},
"repositoryUrl": {
"title": "Repository Url",
"type": "string",
"format": "uri"
},
"licenseType": {
"title": "License Type",
"type": "string",
"default": "MIT",
"examples": [
"BSD-3-Clause",
"ISC"
]
},
"licenseUrl": {
"title": "License Url",
"type": "string",
"format": "uri",
"default": "https://opensource.org/licenses/MIT"
}
}
}
},
"required": [
"id",
"version",
"type",
"name",
"specVersion",
"metadataVersion"
],
"$defs": {
"languageTaggedStrings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"title": "Language as ISO 639-1 Alpha-2 code",
"description": "This language code declares the language of the value.",
"pattern": "^[a-z]{2}$",
"default": "de",
"examples": [
"en",
"fr"
]
},
"value": {
"type": "string",
"title": "Value",
"minLength": 1
}
},
"required": [
"value"
]
},
"minItems": 1
},
"dependencies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "Id of the package or service",
"description": "Used to load or access on demand."
},
"description": {
"type": "string",
"title": "Description",
"description": "Helps to understand the function of the package or service."
},
"type": {
"title": "Dependency Type",
"type": "string",
"description": "File is to be provided along the module, service is an accessible url.",
"enum": [
"file",
"service"
]
},
"required": {
"type": "boolean",
"title": "Required",
"description": "States whether this packages or service is needed for all use cases of the Verona module or only for some special use cases."
}
},
"required": [
"id",
"required",
"type"
]
}
}
}
}