net.wireservice.content

wireservice.net

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "border": {
      "description": "Border definition. The stroke property defines the line style; the boolean flags control which sides are drawn (all true by default when omitted).",
      "properties": {
        "bottom": {
          "type": "boolean"
        },
        "left": {
          "type": "boolean"
        },
        "right": {
          "type": "boolean"
        },
        "stroke": {
          "ref": "net.wireservice.defs#strokeStyle",
          "type": "ref"
        },
        "top": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "componentLayoutValues": {
      "description": "The actual layout values: column placement, margins, padding, alignment, sizing. Used as the values payload for both namedComponentLayout (defaults) and conditionalComponentLayout (overrides).",
      "properties": {
        "columnSpan": {
          "description": "Number of columns this component spans.",
          "minimum": 1,
          "type": "integer"
        },
        "columnStart": {
          "description": "Starting column index (zero-based).",
          "minimum": 0,
          "type": "integer"
        },
        "horizontalContentAlignment": {
          "knownValues": [
            "left",
            "center",
            "right"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "ignoreDocumentGutter": {
          "description": "Which sides should ignore the document gutter.",
          "knownValues": [
            "none",
            "left",
            "right",
            "both"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "ignoreDocumentMargin": {
          "description": "Which sides should ignore the document margin.",
          "knownValues": [
            "none",
            "left",
            "right",
            "both"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "margin": {
          "ref": "net.wireservice.defs#margin",
          "type": "ref"
        },
        "maximumContentWidth": {
          "ref": "net.wireservice.defs#measurement",
          "type": "ref"
        },
        "minimumHeight": {
          "ref": "net.wireservice.defs#measurement",
          "type": "ref"
        },
        "padding": {
          "ref": "net.wireservice.defs#padding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "componentStyleValues": {
      "description": "The actual visual style values: background color, border, corner radius, opacity. Used as the values payload for both namedComponentStyle (defaults) and conditionalComponentStyle (overrides).",
      "properties": {
        "backgroundColor": {
          "description": "Background color as hex string (e.g., '#F7F7F7').",
          "maxLength": 64,
          "type": "string"
        },
        "border": {
          "ref": "#border",
          "type": "ref"
        },
        "cornerRadius": {
          "description": "Corner radius in points.",
          "minimum": 0,
          "type": "integer"
        },
        "opacity": {
          "description": "Opacity as integer 0-100 (100 = fully opaque).",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "conditionalComponentLayout": {
      "description": "Conditional override for a named component layout. The values field carries the override payload; conditions describe when it applies.",
      "properties": {
        "conditions": {
          "description": "Conditions that trigger this override. Multiple conditions combine as OR (any match applies). Combine criteria within a single condition object for AND.",
          "items": {
            "ref": "net.wireservice.defs#condition",
            "type": "ref"
          },
          "type": "array"
        },
        "values": {
          "description": "Override values. Fields not set here keep the parent's defaults.",
          "ref": "#componentLayoutValues",
          "type": "ref"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object"
    },
    "conditionalComponentStyle": {
      "description": "Conditional override for a named component style. The values field carries the override payload; conditions describe when it applies.",
      "properties": {
        "conditions": {
          "description": "Conditions that trigger this override. Multiple conditions combine as OR (any match applies). Combine criteria within a single condition object for AND.",
          "items": {
            "ref": "net.wireservice.defs#condition",
            "type": "ref"
          },
          "type": "array"
        },
        "values": {
          "description": "Override values. Fields not set here keep the parent's defaults.",
          "ref": "#componentStyleValues",
          "type": "ref"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object"
    },
    "conditionalTextStyle": {
      "description": "Conditional override for a named text style. The values field carries the override payload; conditions describe when it applies.",
      "properties": {
        "conditions": {
          "description": "Conditions that trigger this override. Multiple conditions combine as OR (any match applies). Combine criteria within a single condition object for AND.",
          "items": {
            "ref": "net.wireservice.defs#condition",
            "type": "ref"
          },
          "type": "array"
        },
        "values": {
          "description": "Override values. Fields not set here keep the parent's defaults.",
          "ref": "#textStyleValues",
          "type": "ref"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object"
    },
    "correction": {
      "description": "A notice appended to an article after publication.",
      "properties": {
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "kind": {
          "knownValues": [
            "correction",
            "clarification",
            "update",
            "editorsNote"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "text": {
          "description": "Notice text as an array of text runs with optional formatting marks.",
          "items": {
            "ref": "net.wireservice.defs#textRun",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "kind",
        "text",
        "createdAt"
      ],
      "type": "object"
    },
    "documentLayout": {
      "description": "Document-level layout grid defining the column structure for component placement.",
      "properties": {
        "columns": {
          "description": "Number of columns in the layout grid.",
          "minimum": 1,
          "type": "integer"
        },
        "gutter": {
          "description": "Gutter width between columns in points.",
          "minimum": 0,
          "type": "integer"
        },
        "margin": {
          "description": "Document margin in points.",
          "minimum": 0,
          "type": "integer"
        },
        "width": {
          "description": "Maximum layout width in points.",
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "columns",
        "width"
      ],
      "type": "object"
    },
    "main": {
      "description": "Apple News Format-derived rich article content for standard.site documents. Plugs into the open content union of site.standard.document.",
      "properties": {
        "blob": {
          "description": "External JSON blob containing the components array. Used when content exceeds the record size limit. Mutually exclusive with the inline components array.",
          "type": "blob"
        },
        "blobRefs": {
          "description": "Blob references used within content. Required in blob mode to prevent garbage collection of image and media blobs.",
          "items": {
            "type": "blob"
          },
          "type": "array"
        },
        "componentLayouts": {
          "description": "Named component layout definitions. Components reference these by name via their layout field.",
          "items": {
            "ref": "#namedComponentLayout",
            "type": "ref"
          },
          "type": "array"
        },
        "componentStyles": {
          "description": "Named component style definitions. Components reference these by name via their style field.",
          "items": {
            "ref": "#namedComponentStyle",
            "type": "ref"
          },
          "type": "array"
        },
        "componentTextStyles": {
          "description": "Named text style definitions. Text components reference these by name via their textStyle field.",
          "items": {
            "ref": "#namedTextStyle",
            "type": "ref"
          },
          "type": "array"
        },
        "components": {
          "description": "Inline component array. Used when content fits within the record size limit.",
          "items": {
            "closed": false,
            "refs": [
              "net.wireservice.component.body",
              "net.wireservice.component.heading",
              "net.wireservice.component.image",
              "net.wireservice.component.photo",
              "net.wireservice.component.video",
              "net.wireservice.component.audio",
              "net.wireservice.component.gallery",
              "net.wireservice.component.container",
              "net.wireservice.component.divider",
              "net.wireservice.component.quote",
              "net.wireservice.component.byline",
              "net.wireservice.component.embed",
              "net.wireservice.component.map",
              "net.wireservice.component.linkButton",
              "net.wireservice.component.adSlot"
            ],
            "type": "union"
          },
          "type": "array"
        },
        "corrections": {
          "description": "Published corrections, clarifications, and updates, oldest first. Entries are appended, never edited or removed.",
          "items": {
            "ref": "#correction",
            "type": "ref"
          },
          "type": "array"
        },
        "language": {
          "description": "BCP-47 language code for the article content.",
          "format": "language",
          "maxLength": 64,
          "type": "string"
        },
        "layout": {
          "description": "Document-level layout grid. Overrides the stylesheet's default grid if a stylesheet is referenced.",
          "ref": "#documentLayout",
          "type": "ref"
        },
        "stylesheet": {
          "description": "AT URI of a net.wireservice.stylesheet record providing default named layouts, styles, and text styles. Document-level componentLayouts/componentStyles/componentTextStyles entries with the same name override the stylesheet's.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "type": "object"
    },
    "namedComponentLayout": {
      "description": "A named component layout definition controlling column placement, margins, and sizing. Components reference these by the name field.",
      "properties": {
        "conditional": {
          "description": "Conditional overrides. Each entry's values replace the layout's defaults when any of its conditions match the rendering context. Entries are evaluated in order; the first match wins.",
          "items": {
            "ref": "#conditionalComponentLayout",
            "type": "ref"
          },
          "type": "array"
        },
        "name": {
          "description": "Identifier for this layout, referenced by components.",
          "maxLength": 256,
          "type": "string"
        },
        "values": {
          "description": "Default layout values. Conditional entries can override individual fields.",
          "ref": "#componentLayoutValues",
          "type": "ref"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "namedComponentStyle": {
      "description": "A named component style definition controlling visual appearance. Components reference these by the name field.",
      "properties": {
        "conditional": {
          "description": "Conditional overrides. Each entry's values replace the style's defaults when any of its conditions match the rendering context. Entries are evaluated in order; the first match wins.",
          "items": {
            "ref": "#conditionalComponentStyle",
            "type": "ref"
          },
          "type": "array"
        },
        "name": {
          "description": "Identifier for this style, referenced by components.",
          "maxLength": 256,
          "type": "string"
        },
        "values": {
          "description": "Default style values. Conditional entries can override individual fields.",
          "ref": "#componentStyleValues",
          "type": "ref"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "namedTextStyle": {
      "description": "A named text style definition. Text components reference these by the name field.",
      "properties": {
        "conditional": {
          "description": "Conditional overrides. Each entry's values replace the text style's defaults when any of its conditions match the rendering context. Entries are evaluated in order; the first match wins.",
          "items": {
            "ref": "#conditionalTextStyle",
            "type": "ref"
          },
          "type": "array"
        },
        "name": {
          "description": "Identifier for this style, referenced by components.",
          "maxLength": 256,
          "type": "string"
        },
        "values": {
          "description": "Default text style values. Conditional entries can override individual fields.",
          "ref": "#textStyleValues",
          "type": "ref"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "textStyleValues": {
      "description": "The actual text style values: font, size, color, alignment, spacing, decoration. Used as the values payload for both namedTextStyle (defaults) and conditionalTextStyle (overrides).",
      "properties": {
        "backgroundColor": {
          "description": "Text background color as hex string.",
          "maxLength": 64,
          "type": "string"
        },
        "firstLineIndent": {
          "description": "First line indent in points.",
          "minimum": 0,
          "type": "integer"
        },
        "fontFamily": {
          "description": "Font family name (e.g., 'Georgia', 'Helvetica Neue').",
          "maxLength": 256,
          "type": "string"
        },
        "fontName": {
          "description": "PostScript font name for precise font selection.",
          "maxLength": 256,
          "type": "string"
        },
        "fontSize": {
          "description": "Font size in points.",
          "maximum": 500,
          "minimum": 1,
          "type": "integer"
        },
        "fontStyle": {
          "knownValues": [
            "normal",
            "italic",
            "oblique"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "fontWeight": {
          "description": "Font weight (100 = thin, 400 = normal, 700 = bold, 900 = black).",
          "maximum": 900,
          "minimum": 100,
          "type": "integer"
        },
        "hyphenation": {
          "description": "Whether to enable automatic hyphenation.",
          "type": "boolean"
        },
        "lineHeight": {
          "description": "Line height in points.",
          "minimum": 1,
          "type": "integer"
        },
        "paragraphSpacingAfter": {
          "description": "Space after paragraphs in points.",
          "minimum": 0,
          "type": "integer"
        },
        "paragraphSpacingBefore": {
          "description": "Space before paragraphs in points.",
          "minimum": 0,
          "type": "integer"
        },
        "strikethrough": {
          "description": "Whether text has strikethrough decoration.",
          "type": "boolean"
        },
        "textAlignment": {
          "knownValues": [
            "left",
            "center",
            "right",
            "justified",
            "none"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "textColor": {
          "description": "Text color as hex string (e.g., '#333333').",
          "maxLength": 64,
          "type": "string"
        },
        "textTransform": {
          "knownValues": [
            "uppercase",
            "lowercase",
            "capitalize",
            "none"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "tracking": {
          "description": "Letter spacing in hundredths of a point.",
          "type": "integer"
        },
        "underline": {
          "description": "Whether text has underline decoration.",
          "type": "boolean"
        },
        "verticalAlignment": {
          "knownValues": [
            "superscript",
            "subscript",
            "baseline"
          ],
          "maxLength": 64,
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "net.wireservice.content",
  "lexicon": 1
}

Validate Record

Validate a record against net.wireservice.content

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:lktj64hp7lc3fzuf6iyy7lwj
CID
bafyreidka24ieeggjkutzgq44llhuwioko4opzrpdlo72jhnlcqaowso2i
Indexed At
2026-10-12 21:12 UTC
AT-URI
at://did:plc:lktj64hp7lc3fzuf6iyy7lwj/com.atproto.lexicon.schema/net.wireservice.content

Version History (2 versions)

Referenced Schemas (21)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • net.wireservice.component.body objectnot from the namespace authority

    Body text component. The primary component for article prose.

  • Portable Supper rich content embedded in site.standard.document.content; this is not a repository record. Metadata, author, title, dates and plaintext fallback belong to the enclosing Standard Site document. At most 500…

Lexicon Garden

@