Files
HMCL/docs/schemas/account-private-data/1.0.0.json

95 lines
1.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.glavo.site/hmcl/account-private-data/1.0.0",
"title": "HMCL Account Private Data",
"type": "object",
"additionalProperties": true,
"required": [
"$schema",
"protection",
"payload"
],
"oneOf": [
{
"required": [
"protection",
"nonce",
"payload"
],
"properties": {
"protection": {
"const": "hmcl-obfuscated-v1"
},
"nonce": {
"type": "string"
},
"payload": {
"$ref": "#/$defs/obfuscatedPayload"
}
}
},
{
"required": [
"protection",
"payload"
],
"properties": {
"protection": {
"const": "plain"
},
"payload": {
"$ref": "#/$defs/plainPayload"
}
}
}
],
"patternProperties": {
"^\\$schema$": {
"enum": [
"https://schemas.glavo.site/hmcl/account-private-data/1.0.0"
]
}
},
"properties": {
"protection": {
"enum": [
"hmcl-obfuscated-v1",
"plain"
]
},
"nonce": {
"type": "string"
},
"payload": {}
},
"$defs": {
"obfuscatedPayload": {
"type": "array"
},
"plainPayload": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"required": [
"accountID",
"privateData"
],
"properties": {
"accountID": {
"$ref": "#/$defs/accountID"
},
"privateData": {
"type": "object",
"additionalProperties": true
}
}
}
},
"accountID": {
"type": "string",
"pattern": "^account:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
}
}