{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fluidrecall-com/json-schema/fluidrecall-com-deadline-plan-request-schema.json",
  "title": "DeadlinePlanRequest",
  "x-generated": "2026-11-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fluidrecall-com-openapi.json#/components/schemas/DeadlinePlanRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "deadline"
  ],
  "properties": {
    "deadline": {
      "type": "string",
      "description": "YYYY-MM-DD preferred. A UTC instant ending in Z is converted to the study day in timezone."
    },
    "asOf": {
      "type": "string",
      "description": "UTC ISO-8601 timestamp ending in Z"
    },
    "timezone": {
      "type": "string",
      "description": "IANA name. Defaults to the account timezone."
    },
    "dayBoundaryHour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23
    },
    "remainingNewCards": {
      "type": "integer",
      "minimum": 0
    },
    "totalCards": {
      "type": "integer",
      "minimum": 0
    },
    "alreadyLearned": {
      "type": "integer",
      "minimum": 0
    },
    "skipWeekends": {
      "type": "boolean"
    },
    "studyDaysPerWeek": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "bufferStudyDays": {
      "type": "integer",
      "minimum": 0,
      "description": "Reserve this many study days at the end of the window as review-only buffer."
    },
    "currentNewCardsPerDay": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 9999,
      "description": "Compare this N to the recommendation. Omit to use the deck's effective N when deckId is set."
    },
    "deckId": {
      "type": "string",
      "format": "uuid",
      "description": "Fill remaining new cards and current N from this owned deck unless you override them."
    }
  }
}