title: ListItem
'@id': schema:ListItem
extends: Entity
role: tertiary
status: stable
category: prose
description: A single item in a list.
properties:
  content:
    '@id': stencila:content
    description: The content of the list item.
    type: array
    items:
      $ref: Node
  isChecked:
    '@id': stencila:isChecked
    description: A flag to indicate if this list item is checked.
    type: boolean
    default: false
required:
  - content

title: ListItem
'@id': schema:ListItem
extends: Thing
role: tertiary
status: stable
category: prose
description: A single item in a list.
properties:
  content:
    '@id': stencila:content
    description: The content of the list item.
    $comment: Use either `content` or `item`, not both.
    type: array
    items:
      $ref: Node
  isChecked:
    '@id': stencila:isChecked
    description: A flag to indicate if this list item is checked.
    type: boolean
    default: false
  item:
    '@id': schema:item
    description: The item represented by this list item.
    $comment: Use either `item` or `content`, not both.
    allOf:
      - $ref: Node
  position:
    '@id': schema:position
    description: The position of the item in a series or sequence of items.
    type: number

Add item and position properties
feat(ListItem): Add item and position properties

Also make a `Thing` so that it has a `url` property. This allows us to generate HTML Microdata for list items that conforms to https://developers.google.com/search/docs/data-types/carousel#datatypes

See https://github.com/stencila/encoda/blob/9190db9fbc77510c73359b4a53fca9b1977e23a0/src/codecs/html/index.ts#L1606
