{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://receiz.com/standards/receiz.asset-manifest.schema.v1.json",
  "title": "Receiz Asset Manifest v1",
  "description": "Public developer contract for a Receiz asset as a proof object with identity, proof, media, ownership, appends, settlement, and links.",
  "type": "object",
  "required": ["schema", "assetId", "assetType", "proof", "links"],
  "properties": {
    "schema": {
      "const": "receiz.asset_manifest.v1"
    },
    "assetId": {
      "type": "string",
      "minLength": 1
    },
    "assetType": {
      "type": "string",
      "enum": ["proof_object", "sports_card", "signal_card", "wallet_note", "market_certificate", "profile_original", "document"]
    },
    "proof": {
      "type": "object",
      "description": "Receiz proof bundle or proof reference. The sealed artifact/proof remains stronger than this projected manifest."
    },
    "owner": {
      "type": ["object", "null"],
      "additionalProperties": true
    },
    "media": {
      "type": ["object", "null"],
      "additionalProperties": true
    },
    "appends": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "settlement": {
      "type": ["object", "null"],
      "additionalProperties": true
    },
    "links": {
      "type": "object",
      "required": ["self"],
      "properties": {
        "self": {
          "type": "string",
          "format": "uri-reference"
        },
        "verify": {
          "type": "string",
          "format": "uri-reference"
        },
        "publicProof": {
          "type": "string",
          "format": "uri-reference"
        },
        "media": {
          "type": "string",
          "format": "uri-reference"
        }
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
