click.croft.inkwell.poem

ewancroft.uk

Documentation

A poem's body and poetic metadata. Set `$type` to `click.croft.inkwell.poem` when embedding inside `site.standard.document#content`.

main object

A poem's body and poetic metadata. Set `$type` to `click.croft.inkwell.poem` when embedding inside `site.standard.document#content`.

Properties

body string Required

The full text of the poem. Newlines (\n) represent line breaks; double newlines (\n\n) represent stanza breaks. No markdown — use AT Protocol facets for any inline formatting if needed.

maxLength: 100000 bytesmaxGraphemes: 10000 graphemes
form string Optional

The poetic form. Free text — use well-known values where possible (e.g. 'sonnet', 'haiku', 'villanelle', 'ghazal', 'ode', 'elegy', 'free-verse', 'prose-poem', 'concrete', 'erasure').

maxLength: 1000 bytesmaxGraphemes: 100 graphemes
inspiredBy string at-uri Optional

AT URI of a `site.standard.document` record that directly inspired or is responded to by this poem.

language string Optional

BCP-47 language tag for the poem's language (e.g. 'en', 'fr', 'cy', 'ja', 'gd'). Defaults to the author's profile language if omitted.

maxLength: 20 bytes
lineCount integer Optional

Total number of lines in the poem. Clients may auto-calculate this from the body.

minimum: 1
meter string Optional

The metrical pattern, if applicable (e.g. 'iambic-pentameter', 'dactylic-hexameter', 'trochaic-octameter', 'syllabic-7-5-7').

maxLength: 1000 bytesmaxGraphemes: 100 graphemes
originalLanguage string Optional

BCP-47 language tag of the source language, if this poem is a translation.

maxLength: 20 bytes
stanzaCount integer Optional

Total number of stanzas. Clients may auto-calculate by counting double-newline separators.

minimum: 1
View raw schema
{
  "type": "object",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "maxLength": 100000,
      "description": "The full text of the poem. Newlines (\\n) represent line breaks; double newlines (\\n\\n) represent stanza breaks. No markdown — use AT Protocol facets for any inline formatting if needed.",
      "maxGraphemes": 10000
    },
    "form": {
      "type": "string",
      "maxLength": 1000,
      "description": "The poetic form. Free text — use well-known values where possible (e.g. 'sonnet', 'haiku', 'villanelle', 'ghazal', 'ode', 'elegy', 'free-verse', 'prose-poem', 'concrete', 'erasure').",
      "maxGraphemes": 100
    },
    "meter": {
      "type": "string",
      "maxLength": 1000,
      "description": "The metrical pattern, if applicable (e.g. 'iambic-pentameter', 'dactylic-hexameter', 'trochaic-octameter', 'syllabic-7-5-7').",
      "maxGraphemes": 100
    },
    "language": {
      "type": "string",
      "maxLength": 20,
      "description": "BCP-47 language tag for the poem's language (e.g. 'en', 'fr', 'cy', 'ja', 'gd'). Defaults to the author's profile language if omitted."
    },
    "lineCount": {
      "type": "integer",
      "minimum": 1,
      "description": "Total number of lines in the poem. Clients may auto-calculate this from the body."
    },
    "inspiredBy": {
      "type": "string",
      "format": "at-uri",
      "description": "AT URI of a `site.standard.document` record that directly inspired or is responded to by this poem."
    },
    "stanzaCount": {
      "type": "integer",
      "minimum": 1,
      "description": "Total number of stanzas. Clients may auto-calculate by counting double-newline separators."
    },
    "originalLanguage": {
      "type": "string",
      "maxLength": 20,
      "description": "BCP-47 language tag of the source language, if this poem is a translation."
    }
  },
  "description": "A poem's body and poetic metadata. Set `$type` to `click.croft.inkwell.poem` when embedding inside `site.standard.document#content`."
}

Lexicon Garden

@