# net.atpix.gallery.photo

> Published by [lexicon.atpix.net](https://lexicon.garden/identity/did:plc:x4crpdfko2d7xrcd5eovpwex)

✓ This is the authoritative definition for this NSID.

## Description

ATPix photo record. Metadata mapped to Dublin Core and Schema.org ImageObject terms (see docs/lexicon/net.atpix.gallery.md).

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:x4crpdfko2d7xrcd5eovpwex/net.atpix.gallery.photo)
- [Documentation](https://lexicon.garden/lexicon/did:plc:x4crpdfko2d7xrcd5eovpwex/net.atpix.gallery.photo/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:x4crpdfko2d7xrcd5eovpwex/net.atpix.gallery.photo/examples)

## Definitions

### `net.atpix.gallery.photo`

**Type**: `record`

A single image and its descriptive metadata, stored as a signed atproto record.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `image` | `blob` | Yes | schema:contentUrl (blob ref) · dc:format (MIME on blob) — primary image. |
| `title` | `string` | No | dc:title · schema:name — short title. |
| `width` | `integer` | No | schema:width — width in pixels. |
| `height` | `integer` | No | schema:height — height in pixels. |
| `source` | `string` (at-uri) | No | dc:source · schema:isBasedOn — provenance AT URI if imported. |
| `caption` | `string` | No | schema:caption — display caption. |
| `creator` | `string` (did) | No | dc:creator · schema:creator — author DID; defaults to record owner if omitted. |
| `license` | `string` (uri) | No | dc:rights · schema:license — license document URI. |
| `keywords` | `array` | No | dc:subject · schema:keywords — tags; matched by collectionRule hashtags. |
| `spaceUri` | `string` | No | ATPix · ATP-0016 — proposal-form at://…/space/… URI when visibility is permissioned. |
| `albumUris` | `array` | No | schema:isPartOf — denormalized parent album AT URIs. |
| `createdAt` | `string` (datetime) | Yes | dc:date · schema:dateCreated — RFC 3339 UTC. |
| `thumbnail` | `blob` | No | schema:thumbnail — optional preview blob. |
| `inLanguage` | `string` | No | dc:language · schema:inLanguage — BCP 47 tag. |
| `modifiedAt` | `string` (datetime) | No | schema:dateModified — RFC 3339 UTC. |
| `visibility` | `ref` → `net.atpix.gallery.defs#visibility` | Yes | ATPix — public, unlisted, or permissioned (space-gated). |
| `contributor` | `string` (did) | No | dc:contributor — additional contributor DID. |
| `description` | `string` | No | dc:description · schema:description — longer description. |
| `c2paLastAction` | `string` | No | ATPix · C2PA §18.14 — latest action type (e.g. c2pa.created, c2pa.edited.metadata). |
| `copyrightHolder` | `string` (did) | No | schema:copyrightHolder — rights holder DID. |
| `locationCreated` | `ref` → `net.atpix.gallery.defs#geoPlace` | No | schema:locationCreated — capture location. |
| `c2paIngredientUri` | `string` (uri) | No | ATPix · C2PA §18.15 — upstream ingredient URI for derived assets. |
| `c2paValidationState` | `string` | No | ATPix · C2PA §14.3 — cached validator state at last index/display. |
| `c2paActiveManifestId` | `string` | No | ATPix · C2PA §8.1 — instance ID of active manifest in embedded manifest store. |
| `c2paManifestStoreUri` | `string` (uri) | No | ATPix · C2PA §11.4 — URI when manifest store is external to blob. |

## Raw Schema

```json
{
  "id": "net.atpix.gallery.photo",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "image",
          "createdAt",
          "visibility"
        ],
        "properties": {
          "image": {
            "type": "blob",
            "accept": [
              "image/*"
            ],
            "maxSize": 50000000,
            "description": "schema:contentUrl (blob ref) · dc:format (MIME on blob) — primary image."
          },
          "title": {
            "type": "string",
            "maxLength": 500,
            "description": "dc:title · schema:name — short title."
          },
          "width": {
            "type": "integer",
            "minimum": 1,
            "description": "schema:width — width in pixels."
          },
          "height": {
            "type": "integer",
            "minimum": 1,
            "description": "schema:height — height in pixels."
          },
          "source": {
            "type": "string",
            "format": "at-uri",
            "description": "dc:source · schema:isBasedOn — provenance AT URI if imported."
          },
          "caption": {
            "type": "string",
            "maxLength": 2000,
            "description": "schema:caption — display caption."
          },
          "creator": {
            "type": "string",
            "format": "did",
            "description": "dc:creator · schema:creator — author DID; defaults to record owner if omitted."
          },
          "license": {
            "type": "string",
            "format": "uri",
            "description": "dc:rights · schema:license — license document URI."
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 64
            },
            "maxLength": 50,
            "description": "dc:subject · schema:keywords — tags; matched by collectionRule hashtags."
          },
          "spaceUri": {
            "type": "string",
            "maxLength": 512,
            "description": "ATPix · ATP-0016 — proposal-form at://…/space/… URI when visibility is permissioned."
          },
          "albumUris": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "maxLength": 100,
            "description": "schema:isPartOf — denormalized parent album AT URIs."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "dc:date · schema:dateCreated — RFC 3339 UTC."
          },
          "thumbnail": {
            "type": "blob",
            "accept": [
              "image/*"
            ],
            "maxSize": 5000000,
            "description": "schema:thumbnail — optional preview blob."
          },
          "inLanguage": {
            "type": "string",
            "maxLength": 35,
            "description": "dc:language · schema:inLanguage — BCP 47 tag."
          },
          "modifiedAt": {
            "type": "string",
            "format": "datetime",
            "description": "schema:dateModified — RFC 3339 UTC."
          },
          "visibility": {
            "ref": "net.atpix.gallery.defs#visibility",
            "type": "ref",
            "description": "ATPix — public, unlisted, or permissioned (space-gated)."
          },
          "contributor": {
            "type": "string",
            "format": "did",
            "description": "dc:contributor — additional contributor DID."
          },
          "description": {
            "type": "string",
            "maxLength": 5000,
            "description": "dc:description · schema:description — longer description."
          },
          "c2paLastAction": {
            "type": "string",
            "maxLength": 64,
            "description": "ATPix · C2PA §18.14 — latest action type (e.g. c2pa.created, c2pa.edited.metadata)."
          },
          "copyrightHolder": {
            "type": "string",
            "format": "did",
            "description": "schema:copyrightHolder — rights holder DID."
          },
          "locationCreated": {
            "ref": "net.atpix.gallery.defs#geoPlace",
            "type": "ref",
            "description": "schema:locationCreated — capture location."
          },
          "c2paIngredientUri": {
            "type": "string",
            "format": "uri",
            "description": "ATPix · C2PA §18.15 — upstream ingredient URI for derived assets."
          },
          "c2paValidationState": {
            "type": "string",
            "description": "ATPix · C2PA §14.3 — cached validator state at last index/display.",
            "knownValues": [
              "none",
              "wellFormed",
              "valid",
              "trusted",
              "invalid"
            ]
          },
          "c2paActiveManifestId": {
            "type": "string",
            "maxLength": 256,
            "description": "ATPix · C2PA §8.1 — instance ID of active manifest in embedded manifest store."
          },
          "c2paManifestStoreUri": {
            "type": "string",
            "format": "uri",
            "description": "ATPix · C2PA §11.4 — URI when manifest store is external to blob."
          }
        }
      },
      "description": "A single image and its descriptive metadata, stored as a signed atproto record."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "ATPix photo record. Metadata mapped to Dublin Core and Schema.org ImageObject terms (see docs/lexicon/net.atpix.gallery.md)."
}
```
