packages/manifest/src/compilations/schema.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"architecture": {
"description": "Architecture",
"enum": [
"386",
"amd64",
"arm",
"arm64",
"loong64",
"mips",
"mipsle",
"mips64",
"mips64le",
"ppc64",
"ppc64le",
"riscv64",
"s390x",
"wasm"
],
"type": "string"
},
"config": {
"additionalProperties": true,
"description": "Config for a module",
"properties": {
"accountPath": {
"description": "HDWallet path to derive account",
"type": "string"
},
"architecture": {
"$ref": "#/definitions/architecture"
},
"description": {
"type": "string"
},
"features": {
"items": {
"$ref": "#/definitions/feature"
},
"type": "array"
},
"language": {
"$ref": "#/definitions/language"
},
"name": {
"type": "string"
},
"os": {
"$ref": "#/definitions/os"
},
"schema": {
"type": "string"
}
},
"required": [
"name",
"schema"
],
"type": "object"
},
"external": {
"additionalProperties": false,
"definitions": {
"modules": {
"description": "A List of module permissions requests",
"items": {
"$ref": "#/definitions/external/definitions/moduleRequest"
},
"type": "array"
},
"moduleRequest": {
"description": "A module permissions request",
"additionalProperties": false,
"properties": {
"name": {
"description": "Name of the module the dApp is requesting permission to access",
"type": "string"
}
},
"type": "object"
}
},
"properties": {
"modules": {
"$ref": "#/definitions/external/definitions/modules"
}
},
"required": [
"modules"
],
"type": "object"
},
"feature": {
"description": "Framework",
"enum": [
"angular",
"asp.net",
"browser",
"cryengine",
"corona",
"django",
"flutter",
"ionic",
"jquery",
"nodejs",
"phonegap",
"react",
"react-native",
"spring",
"unity",
"unreal",
"vue",
"xamarin"
],
"type": "string"
},
"language": {
"description": "Language",
"enum": [
"c",
"c++",
"c#",
"go",
"java",
"javascript",
"kotlin",
"lua",
"python",
"ruby",
"rust",
"scala",
"solidity",
"swift"
],
"type": "string"
},
"module": {
"additionalProperties": false,
"description": "Module Definition",
"properties": {
"config": {
"$ref": "#/definitions/config"
},
"description": {
"type": "string"
}
},
"required": [
"config"
],
"type": "object"
},
"modules": {
"description": "List of Modules",
"items": {
"$ref": "#/definitions/module"
},
"nullable": true,
"type": "array"
},
"node": {
"additionalProperties": false,
"description": "Node Definition - Generally loaded into an existing or new Node Module",
"properties": {
"config": {
"$ref": "#/definitions/config"
},
"description": {
"type": "string"
},
"modules": {
"additionalProperties": false,
"description": "Modules in the Node",
"properties": {
"private": {
"$ref": "#/definitions/modules"
},
"public": {
"$ref": "#/definitions/modules"
}
},
"required": [],
"type": "object"
},
"name": {
"type": "string"
}
},
"required": [],
"type": "object"
},
"nodes": {
"description": "List of Node Manifests",
"items": {
"$ref": "#/definitions/node"
},
"type": "array"
},
"os": {
"description": "Operating System",
"enum": [
"aix",
"android",
"darwin",
"dragonfly",
"freebsd",
"illumos",
"ios",
"linux",
"netbsd",
"openbsd",
"osx",
"plan9",
"solaris",
"windows"
],
"type": "string"
},
"payloads": {
"description": "List of Modules",
"items": {
"$ref": "#/definitions/module"
},
"nullable": true,
"type": "array"
}
},
"description": "Describes an XYO Package which is a collection of XYO Modules",
"properties": {
"$schema": {
"type": "string"
},
"description": {
"type": "string"
},
"nodes": {
"$ref": "#/definitions/nodes",
"description": "The list of Nodes that are defined in the manifest"
},
"schema": {
"pattern": "^network.xyo.manifest$",
"type": "string"
}
},
"required": [
"nodes",
"schema"
],
"title": "XYO Manifest",
"type": "object"
}