games.cavu.haikuDay

chris.pardy.family

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "gradedLine": {
      "properties": {
        "tiles": {
          "items": {
            "ref": "#gradedTile",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "tiles"
      ],
      "type": "object"
    },
    "gradedTile": {
      "properties": {
        "correct": {
          "type": "boolean"
        },
        "id": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "id",
        "correct"
      ],
      "type": "object"
    },
    "intent": {
      "refs": [
        "#place",
        "#submit"
      ],
      "type": "union"
    },
    "place": {
      "description": "Move a tile. 0 = the bank, 1-3 = poem lines. The missing word ('missing') may be placed once per line.",
      "properties": {
        "from": {
          "maximum": 3,
          "minimum": 0,
          "type": "integer"
        },
        "index": {
          "description": "1-based insert position in the target line after removal from the source; default end.",
          "minimum": 1,
          "type": "integer"
        },
        "item": {
          "maxLength": 32,
          "type": "string"
        },
        "to": {
          "maximum": 3,
          "minimum": 0,
          "type": "integer"
        },
        "type": {
          "const": "place",
          "type": "string"
        }
      },
      "required": [
        "type",
        "item",
        "from",
        "to"
      ],
      "type": "object"
    },
    "result": {
      "description": "Present only after this viewer submits. Reveals the solution.",
      "properties": {
        "decoy": {
          "maxLength": 64,
          "type": "string"
        },
        "lines": {
          "items": {
            "ref": "#gradedLine",
            "type": "ref"
          },
          "type": "array"
        },
        "max_score": {
          "minimum": 0,
          "type": "integer"
        },
        "missing": {
          "ref": "#word",
          "type": "ref"
        },
        "score": {
          "minimum": 0,
          "type": "integer"
        },
        "solution": {
          "items": {
            "ref": "#solutionLine",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "score",
        "max_score",
        "lines",
        "missing",
        "solution",
        "decoy"
      ],
      "type": "object"
    },
    "scoreDetails": {
      "description": "games.cavu.score `details` for Haiku Day: the puzzle number and which tiles were right, per line.",
      "properties": {
        "lines": {
          "items": {
            "ref": "#scoreLine",
            "type": "ref"
          },
          "maxLength": 3,
          "minLength": 3,
          "type": "array"
        },
        "number": {
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "number",
        "lines"
      ],
      "type": "object"
    },
    "scoreLine": {
      "properties": {
        "correct": {
          "items": {
            "type": "boolean"
          },
          "maxLength": 32,
          "type": "array"
        }
      },
      "required": [
        "correct"
      ],
      "type": "object"
    },
    "solutionLine": {
      "properties": {
        "words": {
          "items": {
            "ref": "#word",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "words"
      ],
      "type": "object"
    },
    "submit": {
      "description": "Grade the current lines. One try per day.",
      "properties": {
        "type": {
          "const": "submit",
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "tile": {
      "properties": {
        "id": {
          "maxLength": 32,
          "type": "string"
        },
        "syllables": {
          "minimum": 1,
          "type": "integer"
        },
        "text": {
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "id",
        "text",
        "syllables"
      ],
      "type": "object"
    },
    "view": {
      "description": "project(state, viewer). `none` when no puzzle is scheduled for the day.",
      "properties": {
        "date": {
          "maxLength": 10,
          "type": "string"
        },
        "lines": {
          "items": {
            "items": {
              "maxLength": 32,
              "type": "string"
            },
            "type": "array"
          },
          "maxLength": 3,
          "minLength": 3,
          "type": "array"
        },
        "max_score": {
          "minimum": 0,
          "type": "integer"
        },
        "missing_id": {
          "maxLength": 32,
          "type": "string"
        },
        "next_at": {
          "description": "Next puzzle, ms since epoch (UTC midnight).",
          "type": "integer"
        },
        "none": {
          "type": "boolean"
        },
        "number": {
          "minimum": 1,
          "type": "integer"
        },
        "result": {
          "ref": "#result",
          "type": "ref"
        },
        "tiles": {
          "items": {
            "ref": "#tile",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "date"
      ],
      "type": "object"
    },
    "word": {
      "properties": {
        "syllables": {
          "minimum": 1,
          "type": "integer"
        },
        "text": {
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "text",
        "syllables"
      ],
      "type": "object"
    }
  },
  "description": "Haiku Day's types: scoreDetails ($type of a games.cavu.score record's details for game haiku-day) and the intents and views it exchanges over games.cavu.subscribeSession.",
  "id": "games.cavu.haikuDay",
  "lexicon": 1
}

Validate Record

Validate a record against games.cavu.haikuDay

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:dp7v5b5kejmmzzpwmqyf5wj6
CID
bafyreidongg7esgt5swjiqzbqo3ur6dx6du7hzcofp62szmc7kkptmuupm
Indexed At
2026-10-07 02:02 UTC
AT-URI
at://did:plc:dp7v5b5kejmmzzpwmqyf5wj6/com.atproto.lexicon.schema/games.cavu.haikuDay

Lexicon Garden

@