95 lines
1.8 KiB
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}$"
|
|
}
|
|
}
|
|
}
|