{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.val.town/schemas/val",
  "title": "Val",
  "type": "object",
  "required": [
    "name",
    "id",
    "createdAt",
    "privacy",
    "author",
    "imageUrl",
    "description",
    "links"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "The id of the val"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "privacy": {
      "enum": [
        "public",
        "unlisted",
        "private"
      ],
      "description": "This resource's privacy setting. Unlisted resources do not appear on profile pages or elsewhere, but you can link to them."
    },
    "author": {
      "type": "object",
      "required": [
        "type",
        "id",
        "username"
      ],
      "properties": {
        "type": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "user"
              ]
            },
            {
              "type": "string",
              "enum": [
                "org"
              ]
            }
          ]
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "username": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "imageUrl": {
      "anyOf": [
        {
          "type": "string",
          "description": "The URL of this val's image"
        },
        {
          "type": "null"
        }
      ]
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "links": {
      "type": "object",
      "required": [
        "self",
        "html"
      ],
      "properties": {
        "self": {
          "type": "string",
          "format": "uri",
          "description": "The URL of this resource on this API"
        },
        "html": {
          "type": "string",
          "format": "uri",
          "description": "The URL of this resource on Val Town"
        }
      }
    }
  },
  "description": "A Val"
}