{
  "$id": "https://crow.sg/research/llm-arbitrary-choice-study/artifact-manifest.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Machine-readable JSON Schema for the generated public artifact manifest.",
  "properties": {
    "artifacts": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "bytes": {
            "minimum": 0,
            "type": "integer"
          },
          "contentType": {
            "enum": [
              "application/json",
              "application/pdf",
              "application/schema+json",
              "application/x-bibtex",
              "application/x-tex",
              "image/png",
              "image/svg+xml",
              "text/html"
            ],
            "type": "string"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "filename": {
            "enum": [
              "artifact-manifest.schema.json",
              "bias-map.png",
              "bias-map.svg",
              "llm-arbitrary-choice-study-print.html",
              "llm-arbitrary-choice-study.bib",
              "llm-arbitrary-choice-study.pdf",
              "llm-arbitrary-choice-study.tex",
              "study-summary.json",
              "study-summary.schema.json"
            ],
            "type": "string"
          },
          "name": {
            "enum": [
              "Artifact manifest schema",
              "Bias map PNG",
              "Bias map SVG",
              "BibTeX citation",
              "LaTeX source",
              "Paper PDF",
              "Printable HTML",
              "Summary JSON schema",
              "Uploadable public summary JSON"
            ],
            "type": "string"
          },
          "path": {
            "enum": [
              "/research/llm-arbitrary-choice-study/artifact-manifest.schema.json",
              "/research/llm-arbitrary-choice-study/bias-map.png",
              "/research/llm-arbitrary-choice-study/bias-map.svg",
              "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study-print.html",
              "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.bib",
              "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.pdf",
              "/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.tex",
              "/research/llm-arbitrary-choice-study/study-summary.json",
              "/research/llm-arbitrary-choice-study/study-summary.schema.json"
            ],
            "type": "string"
          },
          "sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "type": "string"
          },
          "url": {
            "enum": [
              "https://crow.sg/research/llm-arbitrary-choice-study/artifact-manifest.schema.json",
              "https://crow.sg/research/llm-arbitrary-choice-study/bias-map.png",
              "https://crow.sg/research/llm-arbitrary-choice-study/bias-map.svg",
              "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study-print.html",
              "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.bib",
              "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.pdf",
              "https://crow.sg/research/llm-arbitrary-choice-study/llm-arbitrary-choice-study.tex",
              "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.json",
              "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.schema.json"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "bytes",
          "contentType",
          "description",
          "filename",
          "name",
          "path",
          "sha256",
          "url"
        ],
        "type": "object"
      },
      "maxItems": 9,
      "minItems": 9,
      "type": "array",
      "uniqueItems": true
    },
    "notes": {
      "items": {
        "minLength": 1,
        "type": "string"
      },
      "minItems": 1,
      "type": "array"
    },
    "schemaVersion": {
      "enum": [
        1
      ],
      "type": "integer"
    },
    "study": {
      "additionalProperties": false,
      "properties": {
        "articleDate": {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        "attemptsUpdatedAt": {
          "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
          "type": "string"
        },
        "author": {
          "minLength": 1,
          "type": "string"
        },
        "slug": {
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
          "type": "string"
        },
        "sourceDatabase": {
          "minLength": 1,
          "type": "string"
        },
        "sourceUpdatedAt": {
          "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
          "type": "string"
        },
        "title": {
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "articleDate",
        "attemptsUpdatedAt",
        "author",
        "slug",
        "sourceDatabase",
        "sourceUpdatedAt",
        "title"
      ],
      "type": "object"
    },
    "summaryJson": {
      "additionalProperties": false,
      "properties": {
        "dataDictionary": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "minLength": 1,
                "type": "string"
              },
              "fieldNames": {
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "type": "array"
              },
              "fields": {
                "minimum": 0,
                "type": "integer"
              },
              "key": {
                "enum": [
                  "attemptsByMaxTokens",
                  "caveats",
                  "conditionSummary",
                  "contextEffects",
                  "cost",
                  "insights",
                  "modelPairBias",
                  "models",
                  "pairBias",
                  "parseStatusCounts",
                  "providerSummary",
                  "statusCounts",
                  "study"
                ],
                "type": "string"
              },
              "records": {
                "minimum": 0,
                "type": "integer"
              },
              "type": {
                "enum": [
                  "array",
                  "object"
                ],
                "type": "string"
              }
            },
            "required": [
              "description",
              "key",
              "type"
            ],
            "type": "object"
          },
          "maxItems": 13,
          "minItems": 13,
          "type": "array"
        },
        "metricDefinitions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "minLength": 1,
                "type": "string"
              },
              "name": {
                "enum": [
                  "absMeanLift",
                  "attemptCostUsd",
                  "baselineShare",
                  "contextSensitivity",
                  "contextShare",
                  "dashboardSpendUsd",
                  "firstShare",
                  "meanLift",
                  "okRate",
                  "optionAShare",
                  "optionBShare",
                  "positionBiasStrength",
                  "preferenceStrength",
                  "semanticPreferenceStrength"
                ],
                "type": "string"
              }
            },
            "required": [
              "description",
              "name"
            ],
            "type": "object"
          },
          "maxItems": 14,
          "minItems": 14,
          "type": "array"
        },
        "path": {
          "enum": [
            "/research/llm-arbitrary-choice-study/study-summary.json"
          ],
          "type": "string"
        },
        "recordCounts": {
          "additionalProperties": {
            "minimum": 0,
            "type": "integer"
          },
          "propertyNames": {
            "enum": [
              "attemptsByMaxTokens",
              "caveats",
              "conditionSummary",
              "contextEffects",
              "modelPairBias",
              "models",
              "pairBias",
              "parseStatusCounts",
              "providerSummary",
              "statusCounts"
            ]
          },
          "type": "object"
        },
        "schemaPath": {
          "enum": [
            "/research/llm-arbitrary-choice-study/study-summary.schema.json"
          ],
          "type": "string"
        },
        "schemaUrl": {
          "enum": [
            "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.schema.json"
          ],
          "format": "uri",
          "type": "string"
        },
        "url": {
          "enum": [
            "https://crow.sg/research/llm-arbitrary-choice-study/study-summary.json"
          ],
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "dataDictionary",
        "metricDefinitions",
        "path",
        "recordCounts",
        "schemaPath",
        "schemaUrl",
        "url"
      ],
      "type": "object"
    }
  },
  "required": [
    "artifacts",
    "notes",
    "schemaVersion",
    "study",
    "summaryJson"
  ],
  "title": "Arbitrary Choices Are Not Random artifact manifest schema",
  "type": "object"
}
