org.simocracy.interview

gainforest.earth

Schema Diff

+15 -0

From

CID
bafyreib6v7jg55h...
Indexed At
2026-03-19 20:27 UTC
View this version

To

CID
bafyreicv5y63k65...
Indexed At
2026-04-24 18:20 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@