{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://blue-core-lod.github.io/bibframe-json/schema/dialect/ProvisionActivity.json",
  "additionalProperties": {
    "description": "Every property is an array, even holding one value. This is the guarantee the whole shape rests on.",
    "type": "array"
  },
  "description": "A publication, distribution or manufacture: who, where and when.",
  "examples": [
    {
      "@type": [
        "ProvisionActivity",
        "Publication"
      ],
      "bflc:simplePlace": [
        "Delhi, India"
      ],
      "bflc:simpleAgent": [
        "New Bharatiya Book Corporation"
      ],
      "bflc:simpleDate": [
        "2026"
      ]
    }
  ],
  "properties": {
    "@id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "@type": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ],
      "$comment": "An array when a node has several types, a string when it has one. @type is a keyword, so no @container reaches it."
    },
    "rdfs:label": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    },
    "place": {
      "items": {
        "$ref": "Ref.json"
      },
      "type": "array"
    },
    "date": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    },
    "bflc:simpleDate": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    },
    "bflc:simplePlace": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    },
    "bflc:simpleAgent": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    },
    "bflc:simpleStatement": {
      "items": {
        "$ref": "Text.json"
      },
      "type": "array"
    }
  },
  "title": "ProvisionActivity",
  "type": "object",
  "patternProperties": {
    "^@": {
      "description": "A JSON-LD keyword is not a property, so the array rule does not reach it. @context is the reason: it is a vocabulary rather than data."
    }
  },
  "not": {
    "description": "a blank node must not carry an @id",
    "required": [
      "@id"
    ],
    "properties": {
      "@id": {
        "pattern": "^_:"
      }
    }
  }
}
