{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/arcmira/json-schema/arcmira-feedback-readback-response-schema.json",
  "title": "FeedbackReadbackResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/arcmira-feedback-api-openapi.yml#/components/schemas/FeedbackReadbackResponse",
  "type": "object",
  "properties": {
    "feedback_id": {
      "type": "string",
      "description": "Id of the feedback record, fbk_ and digits."
    },
    "type": {
      "type": "string",
      "description": "The feedback type as submitted. Values: recommendations, channel_sponsors, mentions, entities_search, entities, channels, monitor_alert, appearances, search, experience."
    },
    "status": {
      "type": "string",
      "enum": [
        "pending_review",
        "needs_information",
        "accepted",
        "accepted_with_changes",
        "rejected",
        "withdrawn",
        "applied",
        "reverted"
      ],
      "description": "Submission-level rollup of the per-correction statuses. Review status in the public vocabulary. Values: pending_review (submitted; a reviewer has not finished with it), needs_information (a reviewer needs more detail from you; add context in a support thread quoting the feedback_id), accepted (the correction was accepted as submitted), accepted_with_changes (accepted, but the reviewer resolved it differently than proposed), rejected (reviewed and declined), withdrawn (withdrawn by the submitter before review), applied (the accepted change is live in the index; accepted does not imply applied), reverted (a previously applied change was rolled back)."
    },
    "query": {
      "type": "object",
      "additionalProperties": {},
      "description": "The query object the feedback was attached to, as submitted."
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "The top-level notes as submitted. Null when none were supplied."
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When the submission was created."
    },
    "corrections": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/FeedbackReadbackCorrection"
      },
      "description": "The corrections, each with its own review status, in submission order."
    }
  },
  "required": [
    "feedback_id",
    "type",
    "status",
    "query",
    "notes",
    "created_at",
    "corrections"
  ],
  "$defs": {
    "FeedbackReadbackCorrection": {
      "type": "object",
      "properties": {
        "item_id": {
          "type": "string",
          "description": "The correction target id as submitted (or a generated placeholder when omitted)."
        },
        "item_kind": {
          "type": "string",
          "description": "Inferred kind of the target. Values include: recommendation, sponsor_entity, entity, entity_merge, mention, appearance, alert, alert_expectation, unknown."
        },
        "issue_type": {
          "type": [
            "string",
            "null"
          ],
          "description": "The issue_type as submitted. Null when the correction carried only a reason or class."
        },
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "The commercial reason code as submitted. Null unless the correction was a commercial-class dispute."
        },
        "suggested_change": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": {},
          "description": "The suggested_change object as submitted. Null when none was supplied."
        },
        "notes": {
          "type": [
            "string",
            "null"
          ],
          "description": "The per-correction notes as submitted. Null when none were supplied."
        },
        "status": {
          "type": "string",
          "enum": [
            "pending_review",
            "needs_information",
            "accepted",
            "accepted_with_changes",
            "rejected",
            "withdrawn",
            "applied",
            "reverted"
          ],
          "description": "Review status in the public vocabulary. Values: pending_review (submitted; a reviewer has not finished with it), needs_information (a reviewer needs more detail from you; add context in a support thread quoting the feedback_id), accepted (the correction was accepted as submitted), accepted_with_changes (accepted, but the reviewer resolved it differently than proposed), rejected (reviewed and declined), withdrawn (withdrawn by the submitter before review), applied (the accepted change is live in the index; accepted does not imply applied), reverted (a previously applied change was rolled back)."
        },
        "resolution_note": {
          "type": [
            "string",
            "null"
          ],
          "description": "Reviewer-written public note about how the correction was resolved. Null until a reviewer leaves one."
        },
        "created_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "When the correction was created."
        }
      },
      "required": [
        "item_id",
        "item_kind",
        "issue_type",
        "reason",
        "suggested_change",
        "notes",
        "status",
        "resolution_note",
        "created_at"
      ]
    }
  }
}