local-social-personas.v1.schema.json (2148B)
1 { 2 "$schema": "https://json-schema.org/draft/2020-12/schema", 3 "$id": "https://radroots.org/schemas/ios/local-social-personas.v1.schema.json", 4 "title": "Tera iOS local-social deterministic persona suite", 5 "type": "object", 6 "additionalProperties": false, 7 "required": ["schema", "schema_version", "locale", "media_fixture_sha256", "personas"], 8 "properties": { 9 "schema": {"const": "tera.ios.local-social.personas.v1"}, 10 "schema_version": {"const": 1}, 11 "locale": {"const": "en_US"}, 12 "media_fixture_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, 13 "personas": { 14 "type": "array", 15 "minItems": 5, 16 "maxItems": 5, 17 "items": {"$ref": "#/$defs/persona"} 18 } 19 }, 20 "$defs": { 21 "persona": { 22 "type": "object", 23 "additionalProperties": false, 24 "required": ["alias", "synthetic_age_band", "interaction_profile", "attempts"], 25 "properties": { 26 "alias": {"enum": ["P01", "P02", "P03", "P04", "P05"]}, 27 "synthetic_age_band": {"enum": ["age_18_27", "adult_other"]}, 28 "interaction_profile": { 29 "enum": [ 30 "experienced_direct", 31 "novice_progressive_disclosure", 32 "nontechnical_validation_recovery", 33 "novice_accessibility_keyboard", 34 "general_transport_retry_relaunch" 35 ] 36 }, 37 "attempts": { 38 "type": "array", 39 "minItems": 3, 40 "maxItems": 3, 41 "items": {"$ref": "#/$defs/attempt"} 42 } 43 } 44 }, 45 "attempt": { 46 "type": "object", 47 "additionalProperties": false, 48 "required": ["id", "order", "flow", "marker", "expected_failure"], 49 "properties": { 50 "id": {"type": "string", "pattern": "^P0[1-5]-A0[1-3]$"}, 51 "order": {"type": "integer", "minimum": 1, "maximum": 15}, 52 "flow": {"enum": ["Update", "PhotoUpdate", "Ask", "Event", "FoodAvailability"]}, 53 "marker": {"type": "string", "pattern": "^rr-p0[1-5]-a0[1-3]-(update|photo|ask|event|food)$", "maxLength": 24}, 54 "expected_failure": {"enum": ["none", "validation_recovery", "transport_retry_relaunch"]} 55 } 56 } 57 } 58 }