{
  "$defs": {
    "__schema0": {
      "enum": [
        "image",
        "font",
        "audio",
        "video",
        "text",
        "data",
        "binary"
      ],
      "type": "string"
    },
    "__schema1": {
      "additionalProperties": false,
      "properties": {
        "path": {
          "minLength": 1,
          "type": "string"
        },
        "type": {
          "const": "project-file",
          "type": "string"
        }
      },
      "required": [
        "type",
        "path"
      ],
      "type": "object"
    },
    "__schema10": {
      "type": "string"
    },
    "__schema11": {
      "type": "string"
    },
    "__schema12": {
      "anyOf": [
        {
          "additionalProperties": false,
          "properties": {
            "hasAlpha": {
              "type": "boolean"
            },
            "height": {
              "exclusiveMinimum": 0,
              "maximum": 65535,
              "type": "integer"
            },
            "orientation": {
              "anyOf": [
                {
                  "const": 1,
                  "type": "number"
                },
                {
                  "const": 2,
                  "type": "number"
                },
                {
                  "const": 3,
                  "type": "number"
                },
                {
                  "const": 4,
                  "type": "number"
                },
                {
                  "const": 5,
                  "type": "number"
                },
                {
                  "const": 6,
                  "type": "number"
                },
                {
                  "const": 7,
                  "type": "number"
                },
                {
                  "const": 8,
                  "type": "number"
                }
              ]
            },
            "width": {
              "exclusiveMinimum": 0,
              "maximum": 65535,
              "type": "integer"
            }
          },
          "required": [
            "width",
            "height",
            "hasAlpha",
            "orientation"
          ],
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "__schema13": {
      "additionalProperties": false,
      "properties": {
        "durationSeconds": {
          "minimum": 0,
          "type": "number"
        },
        "thumbnailRevision": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "__schema2": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "assetBaselineHash": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          },
          "displayName": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "purpose": {
            "enum": [
              "distribution-notice",
              "authoring-source",
              "reference",
              "other"
            ],
            "type": "string"
          },
          "sourceBaselineHash": {
            "pattern": "^sha256:[0-9a-f]{64}$",
            "type": "string"
          }
        },
        "required": [
          "path",
          "purpose"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "__schema3": {
      "default": [],
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "__schema4": {
      "enum": [
        "linear",
        "nearest"
      ],
      "type": "string"
    },
    "__schema5": {
      "type": "string"
    },
    "__schema6": {
      "type": "string"
    },
    "__schema7": {
      "minimum": 0,
      "type": "number"
    },
    "__schema8": {
      "type": "string"
    },
    "__schema9": {
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "aliases": {
          "$ref": "#/$defs/__schema3"
        },
        "attachments": {
          "$ref": "#/$defs/__schema2"
        },
        "byteSize": {
          "$ref": "#/$defs/__schema7"
        },
        "contentHash": {
          "$ref": "#/$defs/__schema8"
        },
        "extension": {
          "$ref": "#/$defs/__schema6"
        },
        "imageMetadata": {
          "$ref": "#/$defs/__schema12"
        },
        "importedAt": {
          "$ref": "#/$defs/__schema9"
        },
        "kind": {
          "$ref": "#/$defs/__schema0"
        },
        "mimeType": {
          "$ref": "#/$defs/__schema5"
        },
        "originalName": {
          "$ref": "#/$defs/__schema10"
        },
        "originalPath": {
          "$ref": "#/$defs/__schema11"
        },
        "preview": {
          "$ref": "#/$defs/__schema13"
        },
        "sampling": {
          "$ref": "#/$defs/__schema4"
        },
        "source": {
          "$ref": "#/$defs/__schema1"
        }
      },
      "required": [
        "kind",
        "source",
        "imageMetadata"
      ],
      "type": "object",
      "x-noveltea-documentation": {
        "constraints": [
          "Image Assets require a non-null imageMetadata object.",
          "Every non-image Asset requires imageMetadata to be null.",
          "attachments is an optional collection of explicit Project-relative file relationships, not registered Assets.",
          "Each attachment has one purpose: distribution-notice, authoring-source, reference, or other; displayName is optional.",
          "Each Asset may associate a physical attachment path only once; paths must exclude local, generated, and VCS directories."
        ]
      }
    },
    "description": {
      "type": "string"
    },
    "id": {
      "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
      "title": "EntityId",
      "type": "string"
    },
    "label": {
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "id",
    "label",
    "data"
  ],
  "type": "object"
}
