Initial curated chimera source from a8ae5b1db07fb49926c94585e2718e5130330974
This commit is contained in:
commit
c737a37f71
531 files changed
+119270
No files matched your search
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/chimera-title-manifest.schema.json",
|
||||
"title": "Portable Chimera title manifest",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"manifestId",
|
||||
"createdAt",
|
||||
"title",
|
||||
"components",
|
||||
"recipes",
|
||||
"assets",
|
||||
"provenance"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"const": 1
|
||||
},
|
||||
"manifestId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"title": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"platform",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"platform": {
|
||||
"enum": [
|
||||
"ps4",
|
||||
"ps5",
|
||||
"crossgen",
|
||||
"unknown"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"titleId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"contentId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"npCommunicationId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"region": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"type",
|
||||
"relativePath",
|
||||
"required"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"base",
|
||||
"update",
|
||||
"dlc",
|
||||
"unlocker",
|
||||
"auxiliary",
|
||||
"patch_bundle",
|
||||
"apr_ampr",
|
||||
"dump_folder",
|
||||
"image",
|
||||
"metadata"
|
||||
]
|
||||
},
|
||||
"relativePath": {
|
||||
"type": "string",
|
||||
"pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$)).+"
|
||||
},
|
||||
"required": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"version": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"contentId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizeBytes": {
|
||||
"type": [
|
||||
"integer",
|
||||
"null"
|
||||
],
|
||||
"minimum": 0
|
||||
},
|
||||
"sha256": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"pattern": "^(?:[a-fA-F0-9]{64})?$"
|
||||
},
|
||||
"provenance": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"recipes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"assets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type",
|
||||
"relativePath",
|
||||
"provenance"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"enum": [
|
||||
"cover",
|
||||
"background",
|
||||
"screenshot",
|
||||
"video",
|
||||
"other"
|
||||
]
|
||||
},
|
||||
"relativePath": {
|
||||
"type": "string"
|
||||
},
|
||||
"provenance": {
|
||||
"type": "string"
|
||||
},
|
||||
"preferred": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"installNotes": {
|
||||
"type": "string"
|
||||
},
|
||||
"provenance": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"importJobId",
|
||||
"sourceType"
|
||||
],
|
||||
"properties": {
|
||||
"importJobId": {
|
||||
"type": "string"
|
||||
},
|
||||
"sourceType": {
|
||||
"type": "string"
|
||||
},
|
||||
"sourceName": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sourceSha256": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/compatibility-provider.schema.json",
|
||||
"title": "Chimera compatibility provider payload",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"provider",
|
||||
"revision",
|
||||
"generatedAt",
|
||||
"findings"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"const": 1
|
||||
},
|
||||
"provider": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"revision": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"findings": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"title",
|
||||
"state",
|
||||
"summary",
|
||||
"applicability",
|
||||
"confidence"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"platform"
|
||||
],
|
||||
"properties": {
|
||||
"platform": {
|
||||
"enum": [
|
||||
"ps4",
|
||||
"ps5"
|
||||
]
|
||||
},
|
||||
"titleId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"contentId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"enum": [
|
||||
"compatible",
|
||||
"incompatible",
|
||||
"workaround",
|
||||
"unknown"
|
||||
]
|
||||
},
|
||||
"severity": {
|
||||
"enum": [
|
||||
"info",
|
||||
"warning",
|
||||
"blocking"
|
||||
]
|
||||
},
|
||||
"summary": {
|
||||
"type": "string"
|
||||
},
|
||||
"details": {
|
||||
"type": "string"
|
||||
},
|
||||
"applicability": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"gameVersion": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"firmwareRange": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"loaderRange": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"storageTypes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"enum": [
|
||||
"internal",
|
||||
"m2",
|
||||
"usb",
|
||||
"server",
|
||||
"unknown"
|
||||
]
|
||||
}
|
||||
},
|
||||
"formats": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"requires": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"confidence": {
|
||||
"enum": [
|
||||
"low",
|
||||
"medium",
|
||||
"high"
|
||||
]
|
||||
},
|
||||
"sourceUrl": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/install-recipe.schema.json",
|
||||
"title": "Chimera install recipe",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"recipeId",
|
||||
"titleRef",
|
||||
"version",
|
||||
"steps",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"const": 1
|
||||
},
|
||||
"recipeId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"titleRef": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"version": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"notes": {
|
||||
"type": "string"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"type",
|
||||
"dependsOn",
|
||||
"required",
|
||||
"parameters"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9._-]+$"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"verify_artifact",
|
||||
"extract_stage",
|
||||
"apply_patch_bundle",
|
||||
"build_image",
|
||||
"transfer",
|
||||
"install_ps4_pkg",
|
||||
"stage_ps5_content",
|
||||
"mount_register",
|
||||
"copy_auxiliary",
|
||||
"compatibility_preflight",
|
||||
"wait_job",
|
||||
"scan_reconcile",
|
||||
"assert_install"
|
||||
]
|
||||
},
|
||||
"dependsOn": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"uniqueItems": true
|
||||
},
|
||||
"required": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"componentRef": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"destinationCapability": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"adapter": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"parameters": {
|
||||
"type": "object"
|
||||
},
|
||||
"idempotencyKeyTemplate": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/ps4-package-backup-manifest.schema.json",
|
||||
"title": "Chimera verified PS4 package backup manifest",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "kind", "createdAt", "title", "components", "recipe", "dependencies"],
|
||||
"properties": {
|
||||
"schemaVersion": { "const": 1 },
|
||||
"kind": { "const": "chimera.ps4-package-backup.v1" },
|
||||
"createdAt": { "type": "integer", "minimum": 0 },
|
||||
"title": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["platform", "titleId", "name"],
|
||||
"properties": { "platform": { "const": "ps4" }, "titleId": { "type": "string", "pattern": "^CUSA[0-9]{5}$" }, "name": { "type": "string" } }
|
||||
},
|
||||
"components": {
|
||||
"type": "array", "minItems": 1, "maxItems": 4,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["id", "type", "version", "contentId", "size", "sha256", "absolutePath", "required", "order", "adapterHint", "provenance"],
|
||||
"properties": {
|
||||
"id": { "enum": ["base", "update", "dlc", "unlocker"] },
|
||||
"type": { "enum": ["base", "update", "dlc", "unlocker"] },
|
||||
"version": { "type": "string" }, "contentId": { "type": "string" }, "size": { "type": "integer", "minimum": 1 },
|
||||
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "absolutePath": { "type": "string", "minLength": 1 },
|
||||
"originalRelativePath": { "type": "string" }, "normalizedRelativePath": { "type": "string" }, "required": { "type": "boolean" },
|
||||
"order": { "type": "integer", "minimum": 1 }, "adapterHint": { "const": "ps4-package" }, "provenance": { "type": "array" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"recipe": { "type": "object", "required": ["installOrder"], "properties": { "installOrder": { "type": "array", "minItems": 1 } } },
|
||||
"dependencies": { "type": "array" }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/ps5-native-package-manifest.schema.json",
|
||||
"title": "Chimera PS5 fPKG package manifest v2",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "kind", "createdAt", "title", "packageFormat", "builder", "source", "evidence", "components", "dependencies", "recipe", "launchVerified", "productionRestorable"],
|
||||
"properties": {
|
||||
"schemaVersion": { "const": 2 },
|
||||
"kind": { "const": "chimera.ps5-fpkg-package.v2" },
|
||||
"createdAt": { "type": "number" },
|
||||
"title": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["platform", "titleId", "name"],
|
||||
"properties": {
|
||||
"platform": { "const": "ps5" },
|
||||
"titleId": { "type": "string", "pattern": "^[A-Z]{4}[0-9]{5}$" },
|
||||
"name": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
},
|
||||
"packageFormat": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["family", "extension", "container", "magic", "debug", "licenseFree", "retail"],
|
||||
"properties": {
|
||||
"family": { "const": "ps5-fpkg" },
|
||||
"extension": { "const": ".pkg" },
|
||||
"container": { "const": "FIH" },
|
||||
"magic": { "const": "7f464948" },
|
||||
"debug": { "const": true },
|
||||
"licenseFree": { "const": true },
|
||||
"retail": { "const": false }
|
||||
}
|
||||
},
|
||||
"builder": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["product", "version", "revision", "api", "bridgeAbi", "patched"],
|
||||
"properties": {
|
||||
"product": { "const": "LibProsperoPkg" },
|
||||
"version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
||||
"revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
||||
"api": { "enum": ["ProsperoBackupConverter", "ProsperoPackageBuilder"] },
|
||||
"bridgeAbi": { "const": "chimera-prospero-bridge-v4" },
|
||||
"patched": { "const": false }
|
||||
}
|
||||
},
|
||||
"source": { "$ref": "#/$defs/sourceEvidence" },
|
||||
"evidence": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["backupReadiness", "structuralValidation", "staticLaunchReadiness", "consoleInstall", "consoleLaunch"],
|
||||
"properties": {
|
||||
"backupReadiness": { "type": "object" },
|
||||
"structuralValidation": { "type": "object" },
|
||||
"staticLaunchReadiness": { "type": "object" },
|
||||
"consoleInstall": { "$ref": "#/$defs/unprovenEvidence" },
|
||||
"consoleLaunch": { "$ref": "#/$defs/unprovenEvidence" }
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["id", "type", "titleId", "contentId", "size", "sha256", "absolutePath", "adapterHint", "structuralValidation", "source"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"type": { "enum": ["base", "dlc"] },
|
||||
"titleId": { "type": "string", "pattern": "^[A-Z]{4}[0-9]{5}$" },
|
||||
"contentId": { "type": "string", "pattern": "^[A-Z]{2}[0-9]{4}-[A-Z]{4}[0-9]{5}_[0-9]{2}-[A-Z0-9]{16}$" },
|
||||
"size": { "type": "integer", "minimum": 1 },
|
||||
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
||||
"absolutePath": { "type": "string", "minLength": 1 },
|
||||
"adapterHint": { "const": "ps5-fpkg-finalized-fih" },
|
||||
"structuralValidation": {
|
||||
"type": "object",
|
||||
"required": ["status", "upstream"],
|
||||
"properties": { "status": { "const": "accepted" }, "upstream": { "type": "object", "required": ["accepted"], "properties": { "accepted": { "const": true } } } }
|
||||
},
|
||||
"source": { "$ref": "#/$defs/sourceEvidence" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": { "type": "array" },
|
||||
"recipe": { "type": "object", "required": ["installOrder"] },
|
||||
"launchVerified": { "const": false },
|
||||
"productionRestorable": { "const": false }
|
||||
},
|
||||
"$defs": {
|
||||
"sourceEvidence": {
|
||||
"type": "object",
|
||||
"required": ["kind", "treeDigestAlgorithm", "treeSha256", "fileCount", "size"],
|
||||
"properties": {
|
||||
"kind": { "const": "verified-prepared-application-backup" },
|
||||
"treeDigestAlgorithm": { "const": "sha256-tree-v1" },
|
||||
"treeSha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
||||
"fileCount": { "type": "integer", "minimum": 1 },
|
||||
"size": { "type": "integer", "minimum": 1 }
|
||||
}
|
||||
},
|
||||
"unprovenEvidence": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["status"],
|
||||
"properties": { "status": { "const": "unproven" } }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/task-queue.schema.json",
|
||||
"title": "Chimera autonomous task queue",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schema_version",
|
||||
"project",
|
||||
"status_values",
|
||||
"selection_rule",
|
||||
"tasks"
|
||||
],
|
||||
"properties": {
|
||||
"schema_version": {
|
||||
"const": 1
|
||||
},
|
||||
"project": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"prepared_at": {
|
||||
"type": "string"
|
||||
},
|
||||
"status_values": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"uniqueItems": true
|
||||
},
|
||||
"selection_rule": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"tasks": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"$ref": "#/$defs/task"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"task": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"epic",
|
||||
"title",
|
||||
"priority",
|
||||
"status",
|
||||
"dependencies",
|
||||
"summary",
|
||||
"scope",
|
||||
"done_when",
|
||||
"required_tests",
|
||||
"risk",
|
||||
"requires_live_hardware",
|
||||
"completion_policy",
|
||||
"documentation",
|
||||
"notes"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"pattern": "^CH-[0-9]{4}$"
|
||||
},
|
||||
"epic": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"priority": {
|
||||
"enum": [
|
||||
"P0",
|
||||
"P1",
|
||||
"P2",
|
||||
"P3"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"enum": [
|
||||
"pending",
|
||||
"in_progress",
|
||||
"done",
|
||||
"blocked_external",
|
||||
"skipped"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^CH-[0-9]{4}$"
|
||||
},
|
||||
"uniqueItems": true
|
||||
},
|
||||
"dependency_policy": {
|
||||
"enum": [
|
||||
"done_only",
|
||||
"done_or_evidenced_blocked_external"
|
||||
]
|
||||
},
|
||||
"summary": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"scope": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"done_when": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"required_tests": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"risk": {
|
||||
"enum": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"critical"
|
||||
]
|
||||
},
|
||||
"requires_live_hardware": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"completion_policy": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"documentation": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"notes": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/trophy-local-inventory.schema.json",
|
||||
"title": "Chimera read-only local PS5 trophy inventory",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "provider", "profile", "coverage", "observedAt", "titles"],
|
||||
"properties": {
|
||||
"schemaVersion": { "const": 1 },
|
||||
"provider": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "version", "firmware", "capabilities"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$" },
|
||||
"version": { "type": "string", "minLength": 1, "maxLength": 64 },
|
||||
"firmware": { "type": "string", "minLength": 1, "maxLength": 32 },
|
||||
"capabilities": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"items": { "enum": ["profile-identity", "list-title-sets", "list-earned-trophies", "earned-timestamps"] }
|
||||
}
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["profileId", "localUserId"],
|
||||
"properties": {
|
||||
"profileId": { "type": "string", "minLength": 1, "maxLength": 64 },
|
||||
"localUserId": { "type": "string", "minLength": 1, "maxLength": 64 },
|
||||
"accountId": { "type": ["string", "null"], "maxLength": 64 }
|
||||
}
|
||||
},
|
||||
"coverage": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["status", "completedScopes", "failedScopes"],
|
||||
"properties": {
|
||||
"status": { "enum": ["complete", "partial", "inaccessible"] },
|
||||
"completedScopes": { "type": "array", "maxItems": 256, "items": { "type": "string", "maxLength": 128 } },
|
||||
"failedScopes": { "type": "array", "maxItems": 256, "items": { "type": "string", "maxLength": 128 } }
|
||||
}
|
||||
},
|
||||
"observedAt": { "type": "string", "format": "date-time" },
|
||||
"titles": {
|
||||
"type": "array",
|
||||
"maxItems": 1000,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["npCommunicationId", "platform", "service", "trophies"],
|
||||
"properties": {
|
||||
"npCommunicationId": { "type": "string", "maxLength": 64 },
|
||||
"titleId": { "type": "string", "maxLength": 10 },
|
||||
"platform": { "enum": ["PS4", "PS5"] },
|
||||
"service": { "enum": ["trophy", "trophy2"] },
|
||||
"trophies": {
|
||||
"type": "array",
|
||||
"maxItems": 5000,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["groupId", "trophyId", "earned"],
|
||||
"properties": {
|
||||
"groupId": { "type": "string", "maxLength": 64 },
|
||||
"trophyId": { "type": "integer", "minimum": 0, "maximum": 99999 },
|
||||
"earned": { "type": "boolean" },
|
||||
"earnedDateTime": { "type": ["string", "null"], "format": "date-time" },
|
||||
"definitionHash": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://chimera.local/schemas/trophy-psn-proof.schema.json",
|
||||
"title": "Read-only PSN trophy evidence snapshot",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"snapshotId",
|
||||
"provider",
|
||||
"fetchedAt",
|
||||
"account",
|
||||
"titles"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"const": 1
|
||||
},
|
||||
"snapshotId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"provider": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"version",
|
||||
"mode"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
},
|
||||
"mode": {
|
||||
"enum": [
|
||||
"json-import",
|
||||
"authorized-read-only"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"fetchedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"account": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"accountId"
|
||||
],
|
||||
"properties": {
|
||||
"accountId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"onlineId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"region": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"titles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"platform",
|
||||
"npServiceName",
|
||||
"npCommunicationId",
|
||||
"trophies"
|
||||
],
|
||||
"properties": {
|
||||
"platform": {
|
||||
"enum": [
|
||||
"PS3",
|
||||
"PS4",
|
||||
"PS5",
|
||||
"PSVITA",
|
||||
"PC",
|
||||
"UNKNOWN"
|
||||
]
|
||||
},
|
||||
"npServiceName": {
|
||||
"enum": [
|
||||
"trophy",
|
||||
"trophy2"
|
||||
]
|
||||
},
|
||||
"npCommunicationId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"titleId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"trophies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"groupId",
|
||||
"trophyId",
|
||||
"earned"
|
||||
],
|
||||
"properties": {
|
||||
"groupId": {
|
||||
"type": "string"
|
||||
},
|
||||
"trophyId": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"earned": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"earnedDateTime": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"bronze",
|
||||
"silver",
|
||||
"gold",
|
||||
"platinum",
|
||||
"unknown"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"hidden": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"canonicalSha256": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"pattern": "^(?:[a-fA-F0-9]{64})?$"
|
||||
},
|
||||
"warnings": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user