{
  "schemaVersion": 1,
  "contractVersion": "1.0.0",
  "status": "pilot",
  "purpose": "Versioned, privacy-safe inputs for Singapore table-convention research, expert AI review and observed product use.",
  "documents": [
    {
      "rel": "submission-schema",
      "href": "/api/sg-mahjong/research/v1/submission.schema.json",
      "mediaType": "application/schema+json"
    },
    {
      "rel": "submission-template",
      "href": "/api/sg-mahjong/research/v1/submission.template.json",
      "mediaType": "application/json"
    },
    {
      "rel": "benchmark-predictions-template",
      "href": "/api/sg-mahjong/research/v1/benchmark-predictions.template.json",
      "mediaType": "application/json"
    },
    {
      "rel": "benchmark-study-protocol",
      "href": "/api/sg-mahjong/research/v1/benchmark-study-protocol/",
      "mediaType": "text/html"
    }
  ],
  "validation": {
    "command": "node scripts/validate-mahjong-research.mjs PATH_TO_SUBMISSION.json",
    "benchmarkCommand": "node scripts/score-mahjong-ai-benchmark.mjs PATH_TO_SUBMISSION.json PATH_TO_PREDICTIONS.json",
    "privacyBoundary": "Do not include direct identifiers, private recording links, concealed opponent hands or future wall order.",
    "evidenceBoundary": "A valid file is structured input, not proof that a claim is correct. Every material claim still needs evidence IDs and human review.",
    "consultantKitCommand": "node scripts/prepare-mahjong-consultant-kit.mjs PRIVATE_DRAFT.json NEW_PRIVATE_KIT_DIRECTORY",
    "studyPrepareCommand": "node scripts/prepare-mahjong-ai-review.mjs prepare DRAFT.json PRIVATE_PACKAGE_DIRECTORY",
    "studyVerifyCommand": "node scripts/prepare-mahjong-ai-review.mjs verify DRAFT.json MANIFEST.json REVIEWER_PACKET.json"
  },
  "benchmark": {
    "minimumIndependentReviewersRecommended": 3,
    "labelsRequired": true,
    "emptyTemplatesAreEvidence": false,
    "primaryEvaluationSplit": "holdout",
    "note": "The scorer rejects unreviewed positions and reports holdout results separately from tuning and pilot records. Use at least three blinded independent reviewers for the real pilot; the contract also permits smaller in-progress review packets.",
    "automationBoundary": "The scorer can reject duplicate reviewer IDs within a position, but cannot prove that IDs represent independent humans, that reviewers were blind, or that a model did not see holdout labels. Those controls require a documented human study process.",
    "blindingProtocol": "/api/sg-mahjong/research/v1/benchmark-study-protocol/",
    "packetBoundary": "Reviewer packets use opaque item IDs and omit source position IDs, corpus splits, evidence IDs, expert reviews, measured latency and model predictions. Keep manifests and raw reviewer responses private."
  }
}
