{
  "lexicon": 1,
  "id": "net.bisks.postwith.feedback",
  "defs": {
    "main": {
      "type": "record",
      "description": "One person's outcome log for a meeting they accepted, written by createRecord (server-generated TID key) from the \"log outcome\" control on an accepted meeting's card. Each side of a meeting can post their own feedback record; the UI shows both once present. Written and read by postwith (https://postwith.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["meetingUri", "outcome", "rematch", "createdAt"],
        "properties": {
          "meetingUri": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the net.bisks.postwith.meeting record this feedback is about."
          },
          "outcome": {
            "type": "string",
            "enum": ["great", "ok", "noshow"],
            "description": "How the meeting went, from a fixed 3-option <select> (\"great\"/\"fine\"/\"no-show\" in the UI, stored as these literal ids). Strict enum since the UI only ever writes one of these three values."
          },
          "note": {
            "type": "string",
            "maxLength": 960,
            "maxGraphemes": 240,
            "description": "Optional free-text note about the meeting. Bound matches the input's maxlength=240. Empty string if left blank."
          },
          "rematch": {
            "type": "boolean",
            "description": "Whether this person would meet again, from the \"would meet again\" checkbox."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this feedback was logged, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
