{ "$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" ] } } } ] }