# social.twinkl.homepage.tile

> Published by [kandake.africa](https://lexicon.garden/identity/did:plc:lrphxvv25aibthe7xoc2eeyy)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lrphxvv25aibthe7xoc2eeyy/social.twinkl.homepage.tile)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lrphxvv25aibthe7xoc2eeyy/social.twinkl.homepage.tile/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lrphxvv25aibthe7xoc2eeyy/social.twinkl.homepage.tile/examples)

## Definitions

### `social.twinkl.homepage.tile`

**Type**: `record`

A placed Web Tile on the actor's customizable home page. Inspired by the DASL tile proposal (darobin/dasl.ing#95) but adapted for Twinkl v1: tile resources carry inline content + contentType rather than content-addressed `src` (no CID infrastructure yet), so the structure can gain an optional `src` later without breaking. Geometry is co-located on the record (8-column grid). The tile payload renders in a null-origin sandboxed iframe.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `h` | `integer` | Yes | Desktop height in grid rows. |
| `w` | `integer` | Yes | Desktop width in grid columns. |
| `x` | `integer` | Yes | Desktop grid column (0-based, 8-column grid). |
| `y` | `integer` | Yes | Desktop grid row (0-based). |
| `page` | `string` | No | Optional sub-page identifier this tile belongs to; absent means the main page. |
| `tile` | `ref` → `ing.dasl.masl#masl` | Yes | The portable, DASL-aligned tile payload. |
| `source` | `string` (at-uri) | No | Optional at:// URI of an external canonical tile record (e.g. ing.dasl.masl) rendered through the DASL tiles loader. When set, the inline tile payload serves as fallback metadata for contexts without the loader. |
| `mobileH` | `integer` | No |  |
| `mobileW` | `integer` | No |  |
| `mobileX` | `integer` | No |  |
| `mobileY` | `integer` | No |  |
| `version` | `integer` | No | Record schema version for future migrations. |
| `createdAt` | `string` (datetime) | Yes |  |
| `updatedAt` | `string` (datetime) | No |  |
| `autoActivate` | `boolean` | No | For a source-referencing tile, render its live content immediately on page load instead of the default click-to-activate preview card. Ignored when source is unset. |

## Raw Schema

```json
{
  "id": "social.twinkl.homepage.tile",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "x",
          "y",
          "w",
          "h",
          "tile",
          "createdAt"
        ],
        "properties": {
          "h": {
            "type": "integer",
            "minimum": 1,
            "description": "Desktop height in grid rows."
          },
          "w": {
            "type": "integer",
            "minimum": 1,
            "description": "Desktop width in grid columns."
          },
          "x": {
            "type": "integer",
            "minimum": 0,
            "description": "Desktop grid column (0-based, 8-column grid)."
          },
          "y": {
            "type": "integer",
            "minimum": 0,
            "description": "Desktop grid row (0-based)."
          },
          "page": {
            "type": "string",
            "maxLength": 256,
            "description": "Optional sub-page identifier this tile belongs to; absent means the main page."
          },
          "tile": {
            "ref": "ing.dasl.masl#masl",
            "type": "ref",
            "description": "The portable, DASL-aligned tile payload."
          },
          "source": {
            "type": "string",
            "format": "at-uri",
            "description": "Optional at:// URI of an external canonical tile record (e.g. ing.dasl.masl) rendered through the DASL tiles loader. When set, the inline tile payload serves as fallback metadata for contexts without the loader."
          },
          "mobileH": {
            "type": "integer",
            "minimum": 1
          },
          "mobileW": {
            "type": "integer",
            "minimum": 1
          },
          "mobileX": {
            "type": "integer",
            "minimum": 0
          },
          "mobileY": {
            "type": "integer",
            "minimum": 0
          },
          "version": {
            "type": "integer",
            "minimum": 0,
            "description": "Record schema version for future migrations."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime"
          },
          "autoActivate": {
            "type": "boolean",
            "description": "For a source-referencing tile, render its live content immediately on page load instead of the default click-to-activate preview card. Ignored when source is unset."
          }
        }
      },
      "description": "A placed Web Tile on the actor's customizable home page. Inspired by the DASL tile proposal (darobin/dasl.ing#95) but adapted for Twinkl v1: tile resources carry inline content + contentType rather than content-addressed `src` (no CID infrastructure yet), so the structure can gain an optional `src` later without breaking. Geometry is co-located on the record (8-column grid). The tile payload renders in a null-origin sandboxed iframe."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
