social.twinkl.homepage.tile

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.

Repository @kandake.africa did:plc:lrphxvv25aibthe7xoc2eeyy namespace authority
Details · record, key any
Kindrecord
Record keyany
Authorityhomepage.twinkl.social
Indexed
cid bafyreiht3qcedjj32bf5ddknx32ekat6fhf76aassp6gqw6ga4xf5iu6x4

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "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.",
      "key": "any",
      "record": {
        "properties": {
          "autoActivate": {
            "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.",
            "type": "boolean"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "h": {
            "description": "Desktop height in grid rows.",
            "minimum": 1,
            "type": "integer"
          },
          "mobileH": {
            "minimum": 1,
            "type": "integer"
          },
          "mobileW": {
            "minimum": 1,
            "type": "integer"
          },
          "mobileX": {
            "minimum": 0,
            "type": "integer"
          },
          "mobileY": {
            "minimum": 0,
            "type": "integer"
          },
          "page": {
            "description": "Optional sub-page identifier this tile belongs to; absent means the main page.",
            "maxLength": 256,
            "type": "string"
          },
          "source": {
            "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.",
            "format": "at-uri",
            "type": "string"
          },
          "tile": {
            "description": "The portable, DASL-aligned tile payload.",
            "ref": "ing.dasl.masl#masl",
            "type": "ref"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          },
          "version": {
            "description": "Record schema version for future migrations.",
            "minimum": 0,
            "type": "integer"
          },
          "w": {
            "description": "Desktop width in grid columns.",
            "minimum": 1,
            "type": "integer"
          },
          "x": {
            "description": "Desktop grid column (0-based, 8-column grid).",
            "minimum": 0,
            "type": "integer"
          },
          "y": {
            "description": "Desktop grid row (0-based).",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y",
          "w",
          "h",
          "tile",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.twinkl.homepage.tile",
  "lexicon": 1
}