{
  "$defs": {
    "ArtifactOrigin": {
      "description": "Where a served artifact came from.",
      "enum": [
        "local",
        "remote",
        "produced"
      ],
      "title": "ArtifactOrigin",
      "type": "string"
    }
  },
  "description": "A consumer's pointer to a store artifact: enough to re-fetch it and to know which of its files are re-fetchable.",
  "properties": {
    "kind": {
      "description": "The artifact kind name.",
      "title": "Kind",
      "type": "string"
    },
    "key": {
      "description": "The content key.",
      "title": "Key",
      "type": "string"
    },
    "name": {
      "default": "",
      "description": "The ``<adjective>-<noun>-<hash8>`` store directory name; always derived from ``key``, never read from input.",
      "title": "Name",
      "type": "string"
    },
    "origin": {
      "$ref": "#/$defs/ArtifactOrigin",
      "description": "Whether this consumer got a hit, pulled it through from the remote tier, or produced it."
    },
    "files": {
      "description": "The consumer-relative posix paths the artifact materialized.",
      "items": {
        "type": "string"
      },
      "title": "Files",
      "type": "array"
    }
  },
  "required": [
    "kind",
    "key",
    "origin"
  ],
  "title": "ArtifactRef",
  "type": "object"
}
