207 lines
5.1 KiB
JSON
207 lines
5.1 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://shd.build/schemas/game-data-capture/screenshot-classification-v1.json",
|
|
"title": "Screenshot classification v1",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"family",
|
|
"view",
|
|
"gear_slot",
|
|
"record_types",
|
|
"confidence",
|
|
"abstention_reason"
|
|
],
|
|
"properties": {
|
|
"family": {
|
|
"enum": [
|
|
"weapon",
|
|
"gear",
|
|
"skill_chip",
|
|
"os_protocol",
|
|
"specialization",
|
|
"weapon_mod",
|
|
"gear_mod",
|
|
"unknown"
|
|
]
|
|
},
|
|
"view": { "type": "string" },
|
|
"gear_slot": { "type": ["string", "null"] },
|
|
"record_types": {
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"maxItems": 8,
|
|
"items": { "type": "string" }
|
|
},
|
|
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"abstention_reason": { "type": ["string", "null"] }
|
|
},
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"family": { "const": "weapon" },
|
|
"view": {
|
|
"enum": [
|
|
"detail",
|
|
"blueprint",
|
|
"crafting",
|
|
"stat_range",
|
|
"talent_grid",
|
|
"augmentation"
|
|
]
|
|
},
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"items": {
|
|
"enum": ["weapon", "weapon_talent", "weapon_augmentation_profile"]
|
|
}
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "gear" },
|
|
"view": { "enum": ["detail", "blueprint", "talent", "augmentation"] },
|
|
"gear_slot": {
|
|
"enum": [
|
|
"Mask",
|
|
"Gloves",
|
|
"Backpack",
|
|
"Body Armor",
|
|
"Holster",
|
|
"Knee Pads"
|
|
]
|
|
},
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"items": {
|
|
"enum": [
|
|
"gear",
|
|
"brand_set",
|
|
"gear_talent",
|
|
"gear_augmentation_profile"
|
|
]
|
|
}
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "skill_chip" },
|
|
"view": { "enum": ["detail", "set_bonus", "talent"] },
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"items": {
|
|
"enum": [
|
|
"skill_chip_set",
|
|
"skill_chip_set_bonus",
|
|
"skill_chip_roll_pool",
|
|
"skill_chip_talent"
|
|
]
|
|
}
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "os_protocol" },
|
|
"view": { "enum": ["detail", "secondary_profile", "talent"] },
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"items": {
|
|
"enum": [
|
|
"os_protocol",
|
|
"os_protocol_secondary_profile",
|
|
"os_protocol_talent"
|
|
]
|
|
}
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "specialization" },
|
|
"view": {
|
|
"enum": [
|
|
"overview",
|
|
"details",
|
|
"ability",
|
|
"focus_details",
|
|
"focus_tree",
|
|
"rank_details"
|
|
]
|
|
},
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"items": {
|
|
"enum": [
|
|
"specialization",
|
|
"specialization_focus",
|
|
"specialization_ability",
|
|
"specialization_tree_node",
|
|
"specialization_tree_rank"
|
|
]
|
|
}
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "weapon_mod" },
|
|
"view": { "const": "detail" },
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": { "const": "weapon_mod" }
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "gear_mod" },
|
|
"view": { "const": "detail" },
|
|
"gear_slot": { "const": null },
|
|
"record_types": {
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": { "const": "gear_mod" }
|
|
},
|
|
"abstention_reason": { "const": null }
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"family": { "const": "unknown" },
|
|
"view": { "const": "unknown" },
|
|
"gear_slot": { "const": null },
|
|
"record_types": { "maxItems": 0 },
|
|
"abstention_reason": {
|
|
"enum": [
|
|
"low_confidence",
|
|
"ambiguous_family",
|
|
"ambiguous_view",
|
|
"unsupported_family",
|
|
"unsupported_view",
|
|
"insufficient_visual_evidence",
|
|
"occluded",
|
|
"corrupt_image",
|
|
"resource_limit",
|
|
"cancelled"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|