# social.craftsky.business.defs

> Published by [craftsky.social](https://lexicon.garden/identity/did:plc:lmmx63zcns6gewgxqfdt4kof)

✓ This is the authoritative definition for this NSID.

## Description

Shared objects used by Craftsky business declarations and events.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lmmx63zcns6gewgxqfdt4kof/social.craftsky.business.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lmmx63zcns6gewgxqfdt4kof/social.craftsky.business.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lmmx63zcns6gewgxqfdt4kof/social.craftsky.business.defs/examples)

## Definitions

### `social.craftsky.business.defs#action`

**Type**: `object`

The declaration's primary external action.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `destination` | `string` (uri) | Yes | External web or email destination selected by the author. |
| `type` | `string` | Yes | Open action type; clients apply behavior only to values they recognize. |

### `social.craftsky.business.defs#aspectRatio`

**Type**: `object`

Image aspect ratio metadata used for layout hints.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `height` | `integer` | Yes |  |
| `width` | `integer` | Yes |  |

### `social.craftsky.business.defs#image`

**Type**: `object`

A business product or event image with optional accessibility and layout metadata.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | No | Optional alt text describing the image. |
| `aspectRatio` | `ref` → `#aspectRatio` | No | Optional aspect ratio metadata for rendering. |
| `image` | `blob` | Yes |  |

### `social.craftsky.business.defs#price`

**Type**: `object`

Seller-authored display price amount and ISO 4217 currency code.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `amount` | `string` | Yes | Nonnegative decimal amount interpreted according to the currency minor-unit scale. |
| `currency` | `string` | Yes | Uppercase ISO 4217 alphabetic currency code. |

### `social.craftsky.business.defs#product`

**Type**: `object`

An external product card in authored display order.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `image` | `ref` → `#image` | No | Optional product image for interoperable records; Craftsky writes require it. |
| `price` | `ref` → `#price` | No | Optional seller-authored display price. |
| `title` | `string` | Yes | Seller-authored product title. |
| `uri` | `string` (uri) | Yes | External product destination. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "action": {
      "description": "The declaration's primary external action.",
      "properties": {
        "destination": {
          "description": "External web or email destination selected by the author.",
          "format": "uri",
          "type": "string"
        },
        "type": {
          "description": "Open action type; clients apply behavior only to values they recognize.",
          "knownValues": [
            "shop",
            "browse-patterns",
            "request-custom-order",
            "book-class",
            "book-appointment",
            "view-event-calendar",
            "email",
            "visit-website",
            "wholesale-enquiries"
          ],
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "type",
        "destination"
      ],
      "type": "object"
    },
    "aspectRatio": {
      "description": "Image aspect ratio metadata used for layout hints.",
      "properties": {
        "height": {
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "width",
        "height"
      ],
      "type": "object"
    },
    "image": {
      "description": "A business product or event image with optional accessibility and layout metadata.",
      "properties": {
        "alt": {
          "description": "Optional alt text describing the image.",
          "maxGraphemes": 1000,
          "maxLength": 1000,
          "type": "string"
        },
        "aspectRatio": {
          "description": "Optional aspect ratio metadata for rendering.",
          "ref": "#aspectRatio",
          "type": "ref"
        },
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp"
          ],
          "maxSize": 2000000,
          "type": "blob"
        }
      },
      "required": [
        "image"
      ],
      "type": "object"
    },
    "price": {
      "description": "Seller-authored display price amount and ISO 4217 currency code.",
      "properties": {
        "amount": {
          "description": "Nonnegative decimal amount interpreted according to the currency minor-unit scale.",
          "maxLength": 17,
          "type": "string"
        },
        "currency": {
          "description": "Uppercase ISO 4217 alphabetic currency code.",
          "maxLength": 3,
          "minLength": 3,
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "type": "object"
    },
    "product": {
      "description": "An external product card in authored display order.",
      "properties": {
        "image": {
          "description": "Optional product image for interoperable records; Craftsky writes require it.",
          "ref": "#image",
          "type": "ref"
        },
        "price": {
          "description": "Optional seller-authored display price.",
          "ref": "#price",
          "type": "ref"
        },
        "title": {
          "description": "Seller-authored product title.",
          "maxGraphemes": 150,
          "maxLength": 1500,
          "type": "string"
        },
        "uri": {
          "description": "External product destination.",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "title",
        "uri"
      ],
      "type": "object"
    }
  },
  "description": "Shared objects used by Craftsky business declarations and events.",
  "id": "social.craftsky.business.defs",
  "lexicon": 1
}
```
