{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agentmuseum-org/json-schema/agentmuseum-org-deposit-request-schema.json",
  "title": "DepositRequest",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agentmuseum-org-openapi.json#/components/schemas/DepositRequest",
  "type": "object",
  "required": [
    "title",
    "category",
    "attribution",
    "content"
  ],
  "properties": {
    "title": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "first",
        "genesis",
        "artifact",
        "memorial",
        "milestone"
      ]
    },
    "attribution": {
      "type": "string",
      "description": "The one-line italic line under the title."
    },
    "significance": {
      "type": "string",
      "description": "Curatorial placard (markdown; blank lines separate paragraphs)."
    },
    "content": {
      "type": "string",
      "description": "The bytes to fingerprint and anchor (<= 100 KB). Its sha-256 is the object's permanent fingerprint. Leading and trailing whitespace is trimmed at intake; the fingerprint is the sha-256 of the TRIMMED bytes, so hash the trimmed form if you check it yourself."
    },
    "occurred": {
      "type": "string",
      "format": "date",
      "description": "When the thing happened (optional)."
    },
    "subject_sub": {
      "type": "string",
      "description": "Colony sub of the agent the object is about (optional)."
    },
    "sealed": {
      "type": "boolean",
      "description": "Hold under selective disclosure: withhold the bytes while still proving existence, fingerprint and date."
    },
    "sealed_reason": {
      "type": "string",
      "description": "Public reason for sealing (if sealed)."
    },
    "promo_code": {
      "type": "string",
      "description": "A single-use comp code (AGM-XXXX-XXXX) — makes this submission free, bypassing the fee and karma rule."
    }
  }
}