local-social-persona-results.v1.schema.json (4930B)
1 { 2 "$schema": "https://json-schema.org/draft/2020-12/schema", 3 "$id": "https://radroots.org/schemas/ios/local-social-persona-results.v1.schema.json", 4 "title": "Tera iOS local-social deterministic persona result", 5 "type": "object", 6 "additionalProperties": false, 7 "required": [ 8 "schema", "schema_version", "run_id", "source_commit", "source_tree", 9 "fixture_sha256", "fixture_schema_sha256", "result_schema_sha256", 10 "simulator", "result_bundle_sha256", "evidence_sha256", "personas", 11 "flow_counts", "accepted_events", "event_kind_counts", "accepted_uploads", 12 "retrievals", "distinct_identities", "unknown_attempts", "duplicate_attempts", 13 "expected_failure_rejections", "events_accepted_during_expected_failures", 14 "production_network_contacts", "unintended_publications", "final_candidate_data_loss", 15 "accessibility", "forward_repairs", "complete_matrix_rerun" 16 ], 17 "properties": { 18 "schema": {"const": "tera.ios.local-social.persona-results.v1"}, 19 "schema_version": {"const": 1}, 20 "run_id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{6,62}[a-z0-9]$"}, 21 "source_commit": {"type": "string", "pattern": "^[0-9a-f]{40}$"}, 22 "source_tree": {"type": "string", "pattern": "^[0-9a-f]{40}$"}, 23 "fixture_sha256": {"$ref": "#/$defs/sha256"}, 24 "fixture_schema_sha256": {"$ref": "#/$defs/sha256"}, 25 "result_schema_sha256": {"$ref": "#/$defs/sha256"}, 26 "simulator": { 27 "type": "object", 28 "additionalProperties": false, 29 "required": ["udid", "os", "architecture"], 30 "properties": { 31 "udid": {"type": "string", "pattern": "^[A-F0-9-]{36}$"}, 32 "os": {"type": "string", "pattern": "^iOS (1[89]|[2-9][0-9]|[1-9][0-9]{2,})(\\.[0-9]+){1,2}$", "maxLength": 32}, 33 "architecture": {"const": "arm64"} 34 } 35 }, 36 "result_bundle_sha256": {"$ref": "#/$defs/sha256"}, 37 "evidence_sha256": {"$ref": "#/$defs/sha256"}, 38 "personas": {"type": "array", "minItems": 5, "maxItems": 5, "items": {"$ref": "#/$defs/persona"}}, 39 "flow_counts": {"$ref": "#/$defs/flow_counts"}, 40 "accepted_events": {"const": 15}, 41 "event_kind_counts": { 42 "type": "object", 43 "additionalProperties": false, 44 "required": ["1", "31923", "30402"], 45 "properties": {"1": {"const": 9}, "31923": {"const": 3}, "30402": {"const": 3}} 46 }, 47 "accepted_uploads": {"const": 3}, 48 "retrievals": {"const": 3}, 49 "distinct_identities": {"const": 5}, 50 "unknown_attempts": {"const": 0}, 51 "duplicate_attempts": {"const": 0}, 52 "expected_failure_rejections": {"const": 1}, 53 "events_accepted_during_expected_failures": {"const": 0}, 54 "production_network_contacts": {"const": 0}, 55 "unintended_publications": {"const": 0}, 56 "final_candidate_data_loss": {"const": 0}, 57 "accessibility": { 58 "type": "object", 59 "additionalProperties": false, 60 "required": ["locale", "content_size", "reduce_motion", "semantic_audit", "voiceover_user_observed"], 61 "properties": { 62 "locale": {"const": "en_US"}, 63 "content_size": {"const": "accessibility-extra-extra-extra-large"}, 64 "reduce_motion": {"const": true}, 65 "semantic_audit": {"const": "passed"}, 66 "voiceover_user_observed": {"const": false} 67 } 68 }, 69 "forward_repairs": { 70 "type": "array", 71 "maxItems": 16, 72 "uniqueItems": true, 73 "items": {"type": "string", "pattern": "^[0-9a-f]{40}$"} 74 }, 75 "complete_matrix_rerun": {"const": true} 76 }, 77 "$defs": { 78 "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, 79 "flow_counts": { 80 "type": "object", 81 "additionalProperties": false, 82 "required": ["Update", "PhotoUpdate", "Ask", "Event", "FoodAvailability"], 83 "properties": { 84 "Update": {"const": 3}, "PhotoUpdate": {"const": 3}, "Ask": {"const": 3}, 85 "Event": {"const": 3}, "FoodAvailability": {"const": 3} 86 } 87 }, 88 "persona": { 89 "type": "object", 90 "additionalProperties": false, 91 "required": ["alias", "identity_sha256", "subscriptions", "attempts"], 92 "properties": { 93 "alias": {"enum": ["P01", "P02", "P03", "P04", "P05"]}, 94 "identity_sha256": {"$ref": "#/$defs/sha256"}, 95 "subscriptions": {"type": "integer", "minimum": 1, "maximum": 4096}, 96 "attempts": {"type": "array", "minItems": 3, "maxItems": 3, "items": {"$ref": "#/$defs/attempt"}} 97 } 98 }, 99 "attempt": { 100 "type": "object", 101 "additionalProperties": false, 102 "required": ["id", "flow", "event_kind", "accepted", "expected_failure_rejections"], 103 "properties": { 104 "id": {"type": "string", "pattern": "^P0[1-5]-A0[1-3]$"}, 105 "flow": {"enum": ["Update", "PhotoUpdate", "Ask", "Event", "FoodAvailability"]}, 106 "event_kind": {"enum": [1, 31923, 30402]}, 107 "accepted": {"const": true}, 108 "expected_failure_rejections": {"type": "integer", "minimum": 0, "maximum": 1} 109 } 110 } 111 } 112 }