73 lines
3.2 KiB
JSON
73 lines
3.2 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", "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": "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"]}
|
|
}
|
|
}
|
|
]
|
|
}
|