org.simocracy.interview
Schema Diff
+15 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 7 non-breaking changes.
Non-Breaking Changes (7)
- AddedVertex AddedVertex { vertex_id: "org.simocracy.interview#openAnswer.questionId" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.interview#valueResponse.questionId" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.interview:body.template" }
- AddedEdge AddedEdge { src: "org.simocracy.interview#openAnswer", tgt: "org.simocracy.interview#openAnswer.questionId", kind: "prop", name: Some("questionId") }
- AddedEdge AddedEdge { src: "org.simocracy.interview#valueResponse", tgt: "org.simocracy.interview#valueResponse.questionId", kind: "prop", name: Some("questionId") }
- AddedEdge AddedEdge { src: "org.simocracy.interview:body", tgt: "org.simocracy.interview:body.template", kind: "prop", name: Some("template") }
- AddedEdge AddedEdge { src: "org.simocracy.interview:body.template", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "org.simocracy.interview#openAnswer.questionId" }AddedVertex { vertex_id: "org.simocracy.interview#valueResponse.questionId" }AddedVertex { vertex_id: "org.simocracy.interview:body.template" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.simocracy.interview#openAnswer", tgt: "org.simocracy.interview#openAnswer.questionId", kind: "prop", name: Some("questionId") }
- Non-breaking: AddedEdge { src: "org.simocracy.interview#valueResponse", tgt: "org.simocracy.interview#valueResponse.questionId", kind: "prop", name: Some("questionId") }
- Non-breaking: AddedEdge { src: "org.simocracy.interview:body", tgt: "org.simocracy.interview:body.template", kind: "prop", name: Some("template") }
- Non-breaking: AddedEdge { src: "org.simocracy.interview:body.template", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "An interview transcript for a sim — captures voice answers and value positions to derive the sim's constitution and speaking style.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"createdAt": {
10
10
"description": "Timestamp when the interview was completed",
11
11
"format": "datetime",
12
12
"type": "string"
13
13
},
14
14
"openAnswers": {
15
15
"description": "Open-ended question answers, transcribed from voice recordings.",
16
16
"items": {
17
17
"ref": "#openAnswer",
18
18
"type": "ref"
19
19
},
20
20
"type": "array"
21
21
},
22
22
"sim": {
23
23
"description": "Reference to the sim record this interview is about",
24
24
"ref": "com.atproto.repo.strongRef",
25
25
"type": "ref"
26
26
},
27
+
"template": {
28
+
"description": "Optional reference to the template this interview answered.",
29
+
"ref": "com.atproto.repo.strongRef",
30
+
"type": "ref"
31
+
},
27
32
"yesNoAnswers": {
28
33
"description": "Yes/no value statement responses.",
29
34
"items": {
30
35
"ref": "#valueResponse",
31
36
"type": "ref"
32
37
},
33
38
"type": "array"
34
39
}
35
40
},
36
41
"required": [
37
42
"sim",
38
43
"openAnswers",
39
44
"yesNoAnswers",
40
45
"createdAt"
41
46
],
42
47
"type": "object"
43
48
},
44
49
"type": "record"
45
50
},
46
51
"openAnswer": {
47
52
"description": "A single open-ended interview answer.",
48
53
"properties": {
49
54
"answer": {
50
55
"description": "The transcribed voice answer",
51
56
"maxGraphemes": 3000,
52
57
"maxLength": 30000,
53
58
"type": "string"
54
59
},
55
60
"question": {
56
61
"description": "The interview question that was asked",
57
62
"maxLength": 1000,
58
63
"type": "string"
64
+
},
65
+
"questionId": {
66
+
"description": "Stable ID linking this answer to a question in the template.",
67
+
"maxLength": 64,
68
+
"type": "string"
59
69
}
60
70
},
61
71
"required": [
62
72
"question",
63
73
"answer"
64
74
],
65
75
"type": "object"
66
76
},
67
77
"valueResponse": {
68
78
"description": "A yes/no response to a value statement.",
69
79
"properties": {
70
80
"answer": {
71
81
"description": "Whether the interviewee agreed (true) or disagreed (false)",
72
82
"type": "boolean"
73
83
},
84
+
"questionId": {
85
+
"description": "Stable ID linking this answer to a question in the template.",
86
+
"maxLength": 64,
87
+
"type": "string"
88
+
},
74
89
"statement": {
75
90
"description": "The value statement presented",
76
91
"maxLength": 1000,
77
92
"type": "string"
78
93
}
79
94
},
80
95
"required": [
81
96
"statement",
82
97
"answer"
83
98
],
84
99
"type": "object"
85
100
}
86
101
},
87
102
"id": "org.simocracy.interview",
88
103
"lexicon": 1
89
104
}