{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/arvx-ai/json-schema/arvx-ai-reading-schema.json",
  "title": "Reading",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/arvx-ai-openapi.json#/components/schemas/Reading",
  "type": "object",
  "properties": {
    "reading": {
      "type": "string",
      "enum": [
        "two_person_fit"
      ]
    },
    "statement": {
      "type": "string",
      "description": "A line to show with every Reading."
    },
    "areas": {
      "type": "array",
      "description": "How this exchange fits this person, area by area: green on target, yellow drifting, red off.",
      "items": {
        "type": "object",
        "properties": {
          "area": {
            "$ref": "#/$defs/Area"
          },
          "color": {
            "$ref": "#/$defs/Color"
          }
        }
      }
    },
    "team": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "team",
            "solo",
            "team unknown"
          ]
        },
        "note": {
          "type": [
            "string",
            "null"
          ],
          "description": "For team unknown, says how to switch bench strength on."
        }
      }
    },
    "predictions": {
      "type": "array",
      "maxItems": 3,
      "description": "What we expect next, based on what we see today.",
      "items": {
        "type": "object",
        "properties": {
          "area": {
            "$ref": "#/$defs/Area"
          },
          "text": {
            "type": "string",
            "description": "The text to show."
          }
        }
      }
    },
    "sinceLast": {
      "type": [
        "string",
        "null"
      ],
      "description": "What moved since the last Reading on this pair. Empty on a first Reading."
    },
    "rightNow": {
      "type": "array",
      "maxItems": 2,
      "description": "What is acting on the other person this week: company news, severe weather, a U.S. holiday.",
      "items": {}
    },
    "record": {
      "type": "string",
      "description": "Sealed. Only ARVX can open it. Store it with the pair and send it with the next Reading."
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Which lookups were off, and the field that switches each on."
    }
  },
  "$defs": {
    "Area": {
      "type": "string",
      "enum": [
        "clarity",
        "cadence",
        "responsiveness",
        "benchStrength",
        "meaningfulMoments"
      ]
    },
    "Color": {
      "type": "string",
      "enum": [
        "green",
        "yellow",
        "red",
        "not applicable",
        "not enough evidence"
      ]
    }
  }
}