329 lines
7.8 KiB
JSON
329 lines
7.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "gamecult.eve.provider_advertisement.v1",
|
|
"title": "Eve Provider Advertisement",
|
|
"type": "object",
|
|
"required": [
|
|
"schema",
|
|
"providerId",
|
|
"serviceId",
|
|
"verseId",
|
|
"title",
|
|
"kind",
|
|
"freshness",
|
|
"schemas",
|
|
"witnesses",
|
|
"surfaces",
|
|
"commands"
|
|
],
|
|
"properties": {
|
|
"schema": {
|
|
"const": "gamecult.eve.provider_advertisement.v1"
|
|
},
|
|
"providerId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"serviceId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"verseId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"rootVerse": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"canonicalService": {
|
|
"type": "string"
|
|
},
|
|
"locatedService": {
|
|
"type": "string"
|
|
},
|
|
"cultMeshAddress": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
},
|
|
"updatedAtUtc": {
|
|
"type": "string"
|
|
},
|
|
"freshness": {
|
|
"type": "object",
|
|
"required": ["state"],
|
|
"properties": {
|
|
"state": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"lastSeenAt": {
|
|
"type": "string"
|
|
},
|
|
"lastSeenAtUtc": {
|
|
"type": "string"
|
|
},
|
|
"maxAgeMs": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"schemas": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": ["string", "object"]
|
|
}
|
|
},
|
|
"witnesses": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["kind"],
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"ref": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"surfaces": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["surfaceId", "schema", "transport"],
|
|
"properties": {
|
|
"surfaceId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"schema": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"recordRef": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"transport": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"surfaceKind": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"interactionModel": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"worldInteraction": {
|
|
"type": "object",
|
|
"required": [
|
|
"projectionKind",
|
|
"stateSchemas",
|
|
"commandBoundary",
|
|
"receiptSchema",
|
|
"loweringTargets",
|
|
"ownership"
|
|
],
|
|
"properties": {
|
|
"projectionKind": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"stateSchemas": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"commandBoundary": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"commandRecordRef": {
|
|
"type": "string"
|
|
},
|
|
"receiptSchema": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"receiptRecordRef": {
|
|
"type": "string"
|
|
},
|
|
"assetManifestRecordRef": {
|
|
"type": "string"
|
|
},
|
|
"loweringTargets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"ownership": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"requiresPlugins": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["pluginId", "requiredCapabilities"],
|
|
"properties": {
|
|
"pluginId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"versionRange": {
|
|
"type": "string"
|
|
},
|
|
"availability": {
|
|
"type": "string",
|
|
"enum": ["required", "optional", "optional-nested"]
|
|
},
|
|
"requiredCapabilities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"optionalCapabilities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"if": {
|
|
"properties": {
|
|
"availability": {
|
|
"const": "required"
|
|
}
|
|
}
|
|
},
|
|
"then": {
|
|
"properties": {
|
|
"requiredCapabilities": {
|
|
"minItems": 1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"if": {
|
|
"required": ["availability"],
|
|
"properties": {
|
|
"availability": {
|
|
"const": "optional-nested"
|
|
}
|
|
}
|
|
},
|
|
"then": {
|
|
"required": ["optionalCapabilities"],
|
|
"properties": {
|
|
"requiredCapabilities": {
|
|
"maxItems": 0
|
|
},
|
|
"optionalCapabilities": {
|
|
"minItems": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"commands": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["command", "transport"],
|
|
"properties": {
|
|
"command": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"transport": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"conformanceScenarios": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["scenarioId", "schema", "path"],
|
|
"properties": {
|
|
"scenarioId": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"schema": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|