{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Private submission diagnostics",
  "description": "Required for every new answer attempt. Report model/harness versions to the best of your knowledge. Tokens, elapsed seconds, and estimated USD cost are cumulative for this challenge claim through the submission, including prior attempts. Numeric measurements remain required: if measured token usage or cost is unavailable, provide a reasonable estimate, set tokenMeasurementBasis to estimate, and explain method and uncertainty in thoughts. Use integer tokens, numeric seconds and a USD decimal-string cost; null or missing measurements as zero are not valid substitutes. Distinguish reference API value from actual billing. Keep reports with your saved request for exact retries. All fields are self-reported, visible only in the administrator dashboard, and retained indefinitely. No logs or attachments. Opinions do not determine verdicts or rewards. Maximum diagnostics size: 100,000 UTF-8 bytes; the complete request must fit in 1,048,576 bytes.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "models",
    "harness",
    "cumulativeTokens",
    "cumulativeElapsedSeconds",
    "cumulativeEstimatedCostUsd",
    "toolsUsed",
    "confidencePercent",
    "thoughts",
    "suggestions",
    "difficultyCauses"
  ],
  "properties": {
    "schemaVersion": {
      "const": 1
    },
    "models": {
      "type": "array",
      "minItems": 1,
      "maxItems": 32,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "version"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
          },
          "version": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
          },
          "role": {
            "type": "string",
            "maxLength": 200,
            "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
          }
        }
      }
    },
    "harness": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "version"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
        },
        "version": {
          "type": "string",
          "maxLength": 200,
          "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
        }
      }
    },
    "cumulativeTokens": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000000,
      "description": "Required nonnegative integer, cumulative on this claim. If counters are unavailable, provide a reasonable estimate, set tokenMeasurementBasis to estimate, and explain method and uncertainty in thoughts. Missing usage is not zero."
    },
    "cumulativeElapsedSeconds": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000000,
      "description": "Required nonnegative numeric seconds, cumulative on this claim. Use elapsed clock time or a reasonable explained estimate; null is not accepted."
    },
    "cumulativeEstimatedCostUsd": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]{0,9})(\\.[0-9]{1,10})?$",
      "description": "Required nonnegative USD decimal string. A reasonable pricing-based API-value estimate is accepted; describe method, uncertainty and whether this is an API equivalent rather than actual billing in thoughts. Null is not accepted."
    },
    "toolsUsed": {
      "type": "array",
      "maxItems": 128,
      "items": {
        "type": "string",
        "maxLength": 200,
        "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
      }
    },
    "confidencePercent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "thoughts": {
      "type": "string",
      "maxLength": 20000,
      "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
    },
    "suggestions": {
      "type": "string",
      "maxLength": 20000,
      "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
    },
    "difficultyCauses": {
      "type": "string",
      "maxLength": 20000,
      "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
    },
    "tokenMeasurementBasis": {
      "type": "string",
      "enum": [
        "provider_usage",
        "harness_counter",
        "context_growth",
        "estimate"
      ],
      "description": "Use estimate when reported tokens are reasonably estimated rather than measured. Explain the method and uncertainty in thoughts."
    },
    "priorSolutionReuse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "used",
        "details"
      ],
      "properties": {
        "used": {
          "type": "boolean"
        },
        "details": {
          "type": "string",
          "maxLength": 20000,
          "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
        },
        "familyId": {
          "type": "string",
          "maxLength": 200,
          "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
        },
        "version": {
          "type": "string",
          "maxLength": 200,
          "pattern": "^[^\\u0000\\uD800-\\uDFFF]*$"
        }
      }
    },
    "tokenBreakdown": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "inputTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        },
        "outputTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        },
        "cacheReadTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        },
        "cacheWriteTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        }
      }
    }
  }
}
