{
  "manifest": {
    "kind": "mdbase.type-pack",
    "id": "tasknotes.task",
    "version": "0.3.0-rc.12",
    "name": "TaskNotes task type pack",
    "description": "The portable TaskNotes task contract and an editable TaskNotes task type.",
    "resources": [
      {
        "kind": "contract",
        "mode": "managed",
        "source": "contracts/tasknotes.task/0.3.0-rc.3.md",
        "target": "_contracts/tasknotes.task.md",
        "digest": "sha256:4761ee78615882170cae6e52590f98917f549bd89d852a0c40568583394d7264"
      },
      {
        "kind": "type",
        "mode": "seed",
        "source": "types/tasknotes-task/1.md",
        "target": "_types/task.md",
        "digest": "sha256:b7f8af7b18d77859dab1f1532c1b55c08c7c39879f55e4ef2a94cb7d2d2284eb"
      },
      {
        "kind": "schema",
        "mode": "managed",
        "source": "schemas/tasknotes.task/0.3.0-rc.3.schema.json",
        "target": "_schemas/tasknotes/tasknotes-task.schema.json",
        "digest": "sha256:3d01df62fc230dfa1cd5c290d685e285594370e17fa176bc06e48c49200d0dc8"
      },
      {
        "kind": "schema",
        "mode": "managed",
        "source": "schemas/tasknotes.task.binding/0.3.0-rc.3.schema.json",
        "target": "_schemas/tasknotes/tasknotes-task-binding.schema.json",
        "digest": "sha256:5b38e8a1c426b7f7fa92d8353fe35dd98e632305cbb15ffccde387473166b267"
      }
    ]
  },
  "resources": [
    {
      "source": "contracts/tasknotes.task/0.3.0-rc.3.md",
      "document": "---\nkind: mdbase.contract\ncontract_type: record\nid: tasknotes.task\nversion: 0.3.0-rc.3\nname: TaskNotes task\ndescription: Portable task data and behavior defined by tasknotes-spec 0.3.0-rc.3.\nrecord_schema:\n  dialect: json-schema-2020-12\n  value:\n    $schema: https://json-schema.org/draft/2020-12/schema\n    $id: https://tasknotes.dev/schemas/tasknotes-task.schema.json\n    title: TaskNotes portable task view\n    description: The storage-neutral record view exposed by the tasknotes.task 0.3.0-rc.3 record contract.\n    type: object\n    required:\n      - status\n      - dateCreated\n    additionalProperties: false\n    properties:\n      id:\n        type: string\n        minLength: 1\n      title:\n        type: string\n        minLength: 1\n      status:\n        type: string\n        minLength: 1\n      priority:\n        type: string\n        minLength: 1\n      due:\n        anyOf:\n          - type: string\n            format: date\n          - type: string\n            format: date-time\n      scheduled:\n        anyOf:\n          - type: string\n            format: date\n          - type: string\n            format: date-time\n      contexts:\n        type: array\n        items:\n          type: string\n      projects:\n        type: array\n        items:\n          type: string\n      attachments:\n        type: array\n        uniqueItems: true\n        items:\n          type: string\n          minLength: 1\n      timeEstimate:\n        type: integer\n        minimum: 0\n      completedDate:\n        type: string\n        format: date\n      dateCreated:\n        type: string\n        format: date-time\n      dateModified:\n        type: string\n        format: date-time\n      recurrence:\n        type: string\n      recurrenceAnchor:\n        enum:\n          - scheduled\n          - completion\n      recurrenceParent:\n        type: string\n      occurrenceDate:\n        type: string\n        format: date\n      occurrenceMaterialization:\n        enum:\n          - manual\n          - on_completion\n          - rolling\n      occurrenceNextTrigger:\n        enum:\n          - completion\n          - completion_or_skip\n      occurrenceTemplate:\n        type: string\n      occurrencePastHorizon:\n        type: string\n      occurrenceFutureHorizon:\n        type: string\n      tags:\n        type: array\n        items:\n          type: string\n      timeEntries:\n        type: array\n        items:\n          type: object\n      reminders:\n        type: array\n        items:\n          type: object\n      blockedBy:\n        type: array\n        items:\n          type: object\n      completeInstances:\n        type: array\n        items:\n          type: string\n          format: date\n      skippedInstances:\n        type: array\n        items:\n          type: string\n          format: date\n      icsEventId:\n        type: array\n        items:\n          type: string\n      googleCalendarEventId:\n        type: string\n      googleCalendarExceptionEventId:\n        type: string\n      googleCalendarExceptionOriginalScheduled:\n        type: string\n        format: date\n      googleCalendarMovedOriginalDates:\n        type: array\n        items:\n          type: string\n          format: date\n      sortOrder:\n        type: string\nbinding_schema:\n  dialect: json-schema-2020-12\n  value:\n    $schema: https://json-schema.org/draft/2020-12/schema\n    $id: https://tasknotes.dev/schemas/tasknotes-task-binding.schema.json\n    title: TaskNotes task data-contract binding\n    description: Semantic configuration supplied by an mdbase type that implements tasknotes.task 0.3.0-rc.3.\n    type: object\n    required:\n      - profiles\n      - capabilities\n      - title\n      - status\n      - priority\n      - recurrence\n      - occurrences\n      - links\n      - archive\n      - time_tracking\n      - templating\n    properties:\n      profiles:\n        type: array\n        minItems: 1\n        uniqueItems: true\n        items:\n          enum:\n            - core-lite\n            - recurrence\n            - templating\n            - materialized-occurrences\n            - extended\n      capabilities:\n        type: array\n        uniqueItems: true\n        items:\n          enum:\n            - dependencies\n            - reminders\n            - attachments\n            - links\n            - time-tracking\n            - materialized-occurrences\n            - rename\n            - archive\n            - batch\n            - concurrency\n            - dry-run\n            - migration\n            - templating\n      title:\n        $ref: \"#/$defs/titlePolicy\"\n      status:\n        $ref: \"#/$defs/statusPolicy\"\n      priority:\n        $ref: \"#/$defs/priorityPolicy\"\n      recurrence:\n        $ref: \"#/$defs/recurrencePolicy\"\n      occurrences:\n        $ref: \"#/$defs/occurrencePolicy\"\n      links:\n        $ref: \"#/$defs/linkPolicy\"\n      archive:\n        $ref: \"#/$defs/archivePolicy\"\n      time_tracking:\n        $ref: \"#/$defs/timeTrackingPolicy\"\n      templating:\n        $ref: \"#/$defs/templatingPolicy\"\n      nlp:\n        $ref: \"#/$defs/nlpPolicy\"\n    additionalProperties: false\n    $defs:\n      nonEmptyString:\n        type: string\n        minLength: 1\n      stringSet:\n        type: array\n        uniqueItems: true\n        items:\n          $ref: \"#/$defs/nonEmptyString\"\n      titlePolicy:\n        type: object\n        required:\n          - storage\n        properties:\n          storage:\n            enum:\n              - filename\n              - frontmatter\n          filename_format:\n            enum:\n              - title\n              - zettel\n              - timestamp\n              - uuid\n              - custom\n          custom_filename_template:\n            $ref: \"#/$defs/nonEmptyString\"\n        allOf:\n          - if:\n              properties:\n                filename_format:\n                  const: custom\n              required:\n                - filename_format\n            then:\n              properties:\n                custom_filename_template:\n                  $ref: \"#/$defs/nonEmptyString\"\n              required:\n                - custom_filename_template\n        additionalProperties: true\n      statusDefinition:\n        type: object\n        required:\n          - value\n          - label\n          - color\n          - is_completed\n          - is_skipped\n          - exclude_from_cycle\n          - order\n          - auto_archive\n          - auto_archive_delay_minutes\n        properties:\n          value:\n            $ref: \"#/$defs/nonEmptyString\"\n          label:\n            type: string\n          color:\n            type: string\n          icon:\n            $ref: \"#/$defs/nonEmptyString\"\n          is_completed:\n            type: boolean\n          is_skipped:\n            type: boolean\n          exclude_from_cycle:\n            type: boolean\n          next_status:\n            $ref: \"#/$defs/nonEmptyString\"\n          order:\n            type: number\n          auto_archive:\n            type: boolean\n          auto_archive_delay_minutes:\n            type: number\n            minimum: 0\n        additionalProperties: true\n      statusPolicy:\n        type: object\n        required:\n          - values\n          - default\n          - completed_values\n          - definitions\n        properties:\n          values:\n            $ref: \"#/$defs/stringSet\"\n          default:\n            $ref: \"#/$defs/nonEmptyString\"\n          completed_values:\n            $ref: \"#/$defs/stringSet\"\n          skipped_values:\n            $ref: \"#/$defs/stringSet\"\n          default_skipped:\n            $ref: \"#/$defs/nonEmptyString\"\n          definitions:\n            type: array\n            items:\n              $ref: \"#/$defs/statusDefinition\"\n        additionalProperties: false\n      priorityDefinition:\n        type: object\n        required:\n          - value\n          - label\n          - color\n          - weight\n        properties:\n          value:\n            $ref: \"#/$defs/nonEmptyString\"\n          label:\n            type: string\n          color:\n            type: string\n          icon:\n            $ref: \"#/$defs/nonEmptyString\"\n          weight:\n            type: number\n        additionalProperties: true\n      priorityPolicy:\n        type: object\n        required:\n          - values\n          - default\n          - definitions\n        properties:\n          values:\n            $ref: \"#/$defs/stringSet\"\n          default:\n            $ref: \"#/$defs/nonEmptyString\"\n          definitions:\n            type: array\n            items:\n              $ref: \"#/$defs/priorityDefinition\"\n        additionalProperties: false\n      recurrencePolicy:\n        type: object\n        required:\n          - syntax\n          - maintain_due_date_offset\n          - reset_body_checkboxes\n        properties:\n          syntax:\n            const: tasknotes\n          maintain_due_date_offset:\n            type: boolean\n          reset_body_checkboxes:\n            type: boolean\n        additionalProperties: false\n      occurrencePolicy:\n        type: object\n        required:\n          - identity_roles\n          - default_materialization\n          - default_next_trigger\n        properties:\n          identity_roles:\n            const:\n              - recurrenceParent\n              - occurrenceDate\n          default_materialization:\n            enum:\n              - manual\n              - on_completion\n              - rolling\n          default_next_trigger:\n            enum:\n              - completion\n              - completion_or_skip\n          past_horizon:\n            $ref: \"#/$defs/nonEmptyString\"\n          future_horizon:\n            $ref: \"#/$defs/nonEmptyString\"\n        additionalProperties: false\n      linkPolicy:\n        type: object\n        required:\n          - accepted_formats\n          - write_format\n        properties:\n          accepted_formats:\n            type: array\n            minItems: 1\n            uniqueItems: true\n            items:\n              enum:\n                - wikilink\n                - markdown\n          write_format:\n            enum:\n              - wikilink\n              - markdown\n        additionalProperties: false\n      archivePolicy:\n        type: object\n        required:\n          - archived_tag\n          - move_on_archive\n        properties:\n          archived_tag:\n            $ref: \"#/$defs/nonEmptyString\"\n          move_on_archive:\n            type: boolean\n          folder:\n            $ref: \"#/$defs/nonEmptyString\"\n        additionalProperties: false\n      timeTrackingPolicy:\n        type: object\n        required:\n          - auto_stop_on_complete\n        properties:\n          auto_stop_on_complete:\n            type: boolean\n        additionalProperties: false\n      templatingPolicy:\n        type: object\n        required:\n          - enabled\n          - occurrence_enabled\n        properties:\n          enabled:\n            type: boolean\n          template_path:\n            $ref: \"#/$defs/nonEmptyString\"\n          occurrence_enabled:\n            type: boolean\n          occurrence_template_path:\n            $ref: \"#/$defs/nonEmptyString\"\n          failure_mode:\n            enum:\n              - error\n              - warning_fallback\n          unknown_variable_policy:\n            enum:\n              - preserve\n              - empty\n        additionalProperties: false\n      nlpTrigger:\n        type: object\n        required:\n          - property_id\n          - trigger\n          - enabled\n        properties:\n          property_id:\n            $ref: \"#/$defs/nonEmptyString\"\n          trigger:\n            $ref: \"#/$defs/nonEmptyString\"\n          enabled:\n            type: boolean\n        additionalProperties: false\n      nlpPolicy:\n        type: object\n        required:\n          - triggers\n        properties:\n          triggers:\n            type: array\n            items:\n              $ref: \"#/$defs/nlpTrigger\"\n        additionalProperties: false\n---\n\n# TaskNotes task contract\n\nTypes implement this contract through `implements`; applications consume\nthe normalized contract view rather than assuming frontmatter names.\n"
    },
    {
      "source": "types/tasknotes-task/1.md",
      "document": "---\nkind: mdbase.type\nname: task\nversion: 1\ndescription: A task managed by TaskNotes.\nmatch:\n  where:\n    tags:\n      contains: task\nschema:\n  dialect: json-schema-2020-12\n  value:\n    $schema: https://json-schema.org/draft/2020-12/schema\n    type: object\n    additionalProperties: true\n    properties:\n      id:\n        type: string\n        minLength: 1\n      title:\n        type: string\n        minLength: 1\n      status:\n        enum: &a2\n          - none\n          - open\n          - in-progress\n          - done\n          - cancelled\n        default: open\n      priority:\n        enum: &a4\n          - none\n          - low\n          - normal\n          - high\n        default: normal\n      due: &a1\n        anyOf:\n          - type: string\n            format: date\n          - type: string\n            format: date-time\n      scheduled: *a1\n      contexts:\n        type: array\n        items:\n          type: string\n      projects:\n        type: array\n        items:\n          type: string\n      attachments:\n        type: array\n        items:\n          type: string\n          minLength: 1\n        uniqueItems: true\n      timeEstimate:\n        type: integer\n        minimum: 0\n      completedDate:\n        type: string\n        format: date\n      dateCreated:\n        type: string\n        format: date-time\n      dateModified:\n        type: string\n        format: date-time\n      recurrence:\n        type: string\n      recurrence_anchor:\n        enum:\n          - scheduled\n          - completion\n        default: scheduled\n      occurrence_materialization:\n        enum:\n          - manual\n          - on_completion\n          - rolling\n        default: manual\n      occurrence_next_trigger:\n        enum:\n          - completion\n          - completion_or_skip\n        default: completion\n      occurrence_template:\n        type: string\n      occurrence_past_horizon:\n        type: string\n      occurrence_future_horizon:\n        type: string\n      recurrence_parent:\n        type: string\n      occurrence_date:\n        type: string\n        format: date\n      tags:\n        type: array\n        items:\n          type: string\n      timeEntries:\n        type: array\n        items:\n          type: object\n          additionalProperties: false\n          properties:\n            startTime:\n              type: string\n              format: date-time\n            endTime:\n              type: string\n              format: date-time\n            description:\n              type: string\n            duration:\n              type: integer\n      reminders:\n        type: array\n        items:\n          oneOf:\n            - type: object\n              required:\n                - id\n                - type\n                - absoluteTime\n              additionalProperties: false\n              properties:\n                id:\n                  type: string\n                type:\n                  const: absolute\n                description:\n                  type: string\n                absoluteTime:\n                  type: string\n                  format: date-time\n            - type: object\n              required:\n                - id\n                - type\n                - relatedTo\n                - offset\n              additionalProperties: false\n              properties:\n                id:\n                  type: string\n                type:\n                  const: relative\n                description:\n                  type: string\n                relatedTo:\n                  enum:\n                    - due\n                    - scheduled\n                offset:\n                  type: string\n      blockedBy:\n        type: array\n        items:\n          type: object\n          additionalProperties: false\n          properties:\n            uid:\n              type: string\n            reltype:\n              type: string\n            gap:\n              type: string\n          required:\n            - uid\n      complete_instances:\n        type: array\n        items:\n          type: string\n          format: date\n      skipped_instances:\n        type: array\n        items:\n          type: string\n          format: date\n      icsEventId:\n        type: array\n        items:\n          type: string\n      googleCalendarEventId:\n        type: string\n      googleCalendarExceptionEventId:\n        type: string\n      googleCalendarExceptionOriginalScheduled:\n        type: string\n        format: date\n      googleCalendarMovedOriginalDates:\n        type: array\n        items:\n          type: string\n          format: date\n      tasknotes_manual_order:\n        type: string\n    allOf:\n      - if:\n          required:\n            - status\n          properties:\n            status:\n              enum: &a3\n                - done\n          not:\n            required:\n              - recurrence\n        then:\n          required:\n            - completedDate\n    required:\n      - title\n      - status\n      - dateCreated\ncollection:\n  read_defaults:\n    status: open\n    priority: normal\n    recurrence_anchor: scheduled\n    occurrence_materialization: manual\n    occurrence_next_trigger: completion\n  links:\n    projects[]:\n      target_type: any\n      validate_exists: false\n    attachments[]:\n      validate_exists: false\n    occurrence_template:\n      target_type: any\n      validate_exists: false\n    recurrence_parent:\n      target_type: task\n      validate_exists: false\n    blockedBy[].uid:\n      target_type: task\n      validate_exists: false\n  path:\n    runtime: tasknotes\n    template: \"{{zettel}}\"\n    folder: tasks\n    generated_by: tasknotes.filename.create\n  display:\n    name_field: title\n  unique:\n    - field: id\n      scope: type\nlifecycle:\n  on_create:\n    set:\n      id:\n        uuid: true\n      dateCreated:\n        now: true\n      dateModified:\n        now: true\n  on_update:\n    set:\n      dateModified:\n        now: true\nimplements:\n  - contract: tasknotes.task\n    version: 0.3.0-rc.3\n    fields:\n      id: id\n      title: title\n      status: status\n      priority: priority\n      due: due\n      scheduled: scheduled\n      contexts: contexts\n      projects: projects\n      attachments: attachments\n      timeEstimate: timeEstimate\n      completedDate: completedDate\n      dateCreated: dateCreated\n      dateModified: dateModified\n      recurrence: recurrence\n      recurrenceAnchor: recurrence_anchor\n      occurrenceMaterialization: occurrence_materialization\n      occurrenceNextTrigger: occurrence_next_trigger\n      occurrenceTemplate: occurrence_template\n      occurrencePastHorizon: occurrence_past_horizon\n      occurrenceFutureHorizon: occurrence_future_horizon\n      recurrenceParent: recurrence_parent\n      occurrenceDate: occurrence_date\n      tags: tags\n      timeEntries: timeEntries\n      reminders: reminders\n      blockedBy: blockedBy\n      completeInstances: complete_instances\n      skippedInstances: skipped_instances\n      icsEventId: icsEventId\n      googleCalendarEventId: googleCalendarEventId\n      googleCalendarExceptionEventId: googleCalendarExceptionEventId\n      googleCalendarExceptionOriginalScheduled: googleCalendarExceptionOriginalScheduled\n      googleCalendarMovedOriginalDates: googleCalendarMovedOriginalDates\n      sortOrder: tasknotes_manual_order\n    binding:\n      profiles:\n        - core-lite\n        - recurrence\n        - materialized-occurrences\n      capabilities:\n        - dependencies\n        - reminders\n        - attachments\n        - links\n        - time-tracking\n        - materialized-occurrences\n        - archive\n        - templating\n      title:\n        storage: frontmatter\n        filename_format: zettel\n      status:\n        values: *a2\n        default: open\n        completed_values: *a3\n        skipped_values:\n          - cancelled\n        default_skipped: cancelled\n        definitions:\n          - value: none\n            label: None\n            color: \"#94a3b8\"\n            is_completed: false\n            is_skipped: false\n            exclude_from_cycle: false\n            order: 0\n            auto_archive: false\n            auto_archive_delay_minutes: 5\n          - value: open\n            label: Open\n            color: \"#64748b\"\n            is_completed: false\n            is_skipped: false\n            exclude_from_cycle: false\n            order: 1\n            auto_archive: false\n            auto_archive_delay_minutes: 5\n          - value: in-progress\n            label: In progress\n            color: \"#3b82f6\"\n            is_completed: false\n            is_skipped: false\n            exclude_from_cycle: false\n            order: 2\n            auto_archive: false\n            auto_archive_delay_minutes: 5\n          - value: done\n            label: Done\n            color: \"#22c55e\"\n            is_completed: true\n            is_skipped: false\n            exclude_from_cycle: false\n            order: 3\n            auto_archive: false\n            auto_archive_delay_minutes: 5\n          - value: cancelled\n            label: Cancelled\n            color: \"#94a3b8\"\n            is_completed: false\n            is_skipped: true\n            exclude_from_cycle: true\n            order: 4\n            auto_archive: false\n            auto_archive_delay_minutes: 5\n      priority:\n        values: *a4\n        default: normal\n        definitions:\n          - value: none\n            label: None\n            color: \"#94a3b8\"\n            weight: 0\n          - value: low\n            label: Low\n            color: \"#3b82f6\"\n            weight: 1\n          - value: normal\n            label: Normal\n            color: \"#f59e0b\"\n            weight: 2\n          - value: high\n            label: High\n            color: \"#ef4444\"\n            weight: 3\n      recurrence:\n        syntax: tasknotes\n        maintain_due_date_offset: true\n        reset_body_checkboxes: false\n      occurrences:\n        identity_roles:\n          - recurrenceParent\n          - occurrenceDate\n        default_materialization: manual\n        default_next_trigger: completion\n        past_horizon: P0D\n        future_horizon: P14D\n      links:\n        accepted_formats:\n          - wikilink\n          - markdown\n        write_format: wikilink\n      archive:\n        archived_tag: archived\n        move_on_archive: false\n      time_tracking:\n        auto_stop_on_complete: false\n      templating:\n        enabled: false\n        occurrence_enabled: false\nx-tasknotes-generator:\n  managed_fields:\n    - attachments\n    - blockedBy\n    - complete_instances\n    - completedDate\n    - contexts\n    - dateCreated\n    - dateModified\n    - due\n    - googleCalendarEventId\n    - googleCalendarExceptionEventId\n    - googleCalendarExceptionOriginalScheduled\n    - googleCalendarMovedOriginalDates\n    - icsEventId\n    - id\n    - occurrence_date\n    - occurrence_future_horizon\n    - occurrence_materialization\n    - occurrence_next_trigger\n    - occurrence_past_horizon\n    - occurrence_template\n    - priority\n    - projects\n    - recurrence\n    - recurrence_anchor\n    - recurrence_parent\n    - reminders\n    - scheduled\n    - skipped_instances\n    - status\n    - tags\n    - tasknotes_manual_order\n    - timeEntries\n    - timeEstimate\n    - title\n---\n# Task\n\nTask records live under `tasks/`.\n"
    },
    {
      "source": "schemas/tasknotes.task/0.3.0-rc.3.schema.json",
      "document": "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://tasknotes.dev/schemas/tasknotes-task.schema.json\",\n  \"title\": \"TaskNotes portable task view\",\n  \"description\": \"The storage-neutral record view exposed by the tasknotes.task 0.3.0-rc.3 record contract.\",\n  \"type\": \"object\",\n  \"required\": [\n    \"status\",\n    \"dateCreated\"\n  ],\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"title\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"status\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"priority\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"due\": {\n      \"anyOf\": [\n        {\n          \"type\": \"string\",\n          \"format\": \"date\"\n        },\n        {\n          \"type\": \"string\",\n          \"format\": \"date-time\"\n        }\n      ]\n    },\n    \"scheduled\": {\n      \"anyOf\": [\n        {\n          \"type\": \"string\",\n          \"format\": \"date\"\n        },\n        {\n          \"type\": \"string\",\n          \"format\": \"date-time\"\n        }\n      ]\n    },\n    \"contexts\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"projects\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"attachments\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"minLength\": 1\n      }\n    },\n    \"timeEstimate\": {\n      \"type\": \"integer\",\n      \"minimum\": 0\n    },\n    \"completedDate\": {\n      \"type\": \"string\",\n      \"format\": \"date\"\n    },\n    \"dateCreated\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"dateModified\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"recurrence\": {\n      \"type\": \"string\"\n    },\n    \"recurrenceAnchor\": {\n      \"enum\": [\n        \"scheduled\",\n        \"completion\"\n      ]\n    },\n    \"recurrenceParent\": {\n      \"type\": \"string\"\n    },\n    \"occurrenceDate\": {\n      \"type\": \"string\",\n      \"format\": \"date\"\n    },\n    \"occurrenceMaterialization\": {\n      \"enum\": [\n        \"manual\",\n        \"on_completion\",\n        \"rolling\"\n      ]\n    },\n    \"occurrenceNextTrigger\": {\n      \"enum\": [\n        \"completion\",\n        \"completion_or_skip\"\n      ]\n    },\n    \"occurrenceTemplate\": {\n      \"type\": \"string\"\n    },\n    \"occurrencePastHorizon\": {\n      \"type\": \"string\"\n    },\n    \"occurrenceFutureHorizon\": {\n      \"type\": \"string\"\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"timeEntries\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\"\n      }\n    },\n    \"reminders\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\"\n      }\n    },\n    \"blockedBy\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\"\n      }\n    },\n    \"completeInstances\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\",\n        \"format\": \"date\"\n      }\n    },\n    \"skippedInstances\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\",\n        \"format\": \"date\"\n      }\n    },\n    \"icsEventId\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"googleCalendarEventId\": {\n      \"type\": \"string\"\n    },\n    \"googleCalendarExceptionEventId\": {\n      \"type\": \"string\"\n    },\n    \"googleCalendarExceptionOriginalScheduled\": {\n      \"type\": \"string\",\n      \"format\": \"date\"\n    },\n    \"googleCalendarMovedOriginalDates\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\",\n        \"format\": \"date\"\n      }\n    },\n    \"sortOrder\": {\n      \"type\": \"string\"\n    }\n  }\n}\n"
    },
    {
      "source": "schemas/tasknotes.task.binding/0.3.0-rc.3.schema.json",
      "document": "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://tasknotes.dev/schemas/tasknotes-task-binding.schema.json\",\n  \"title\": \"TaskNotes task data-contract binding\",\n  \"description\": \"Semantic configuration supplied by an mdbase type that implements tasknotes.task 0.3.0-rc.3.\",\n  \"type\": \"object\",\n  \"required\": [\n    \"profiles\",\n    \"capabilities\",\n    \"title\",\n    \"status\",\n    \"priority\",\n    \"recurrence\",\n    \"occurrences\",\n    \"links\",\n    \"archive\",\n    \"time_tracking\",\n    \"templating\"\n  ],\n  \"properties\": {\n    \"profiles\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"uniqueItems\": true,\n      \"items\": {\n        \"enum\": [\n          \"core-lite\",\n          \"recurrence\",\n          \"templating\",\n          \"materialized-occurrences\",\n          \"extended\"\n        ]\n      }\n    },\n    \"capabilities\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"enum\": [\n          \"dependencies\",\n          \"reminders\",\n          \"attachments\",\n          \"links\",\n          \"time-tracking\",\n          \"materialized-occurrences\",\n          \"rename\",\n          \"archive\",\n          \"batch\",\n          \"concurrency\",\n          \"dry-run\",\n          \"migration\",\n          \"templating\"\n        ]\n      }\n    },\n    \"title\": {\n      \"$ref\": \"#/$defs/titlePolicy\"\n    },\n    \"status\": {\n      \"$ref\": \"#/$defs/statusPolicy\"\n    },\n    \"priority\": {\n      \"$ref\": \"#/$defs/priorityPolicy\"\n    },\n    \"recurrence\": {\n      \"$ref\": \"#/$defs/recurrencePolicy\"\n    },\n    \"occurrences\": {\n      \"$ref\": \"#/$defs/occurrencePolicy\"\n    },\n    \"links\": {\n      \"$ref\": \"#/$defs/linkPolicy\"\n    },\n    \"archive\": {\n      \"$ref\": \"#/$defs/archivePolicy\"\n    },\n    \"time_tracking\": {\n      \"$ref\": \"#/$defs/timeTrackingPolicy\"\n    },\n    \"templating\": {\n      \"$ref\": \"#/$defs/templatingPolicy\"\n    },\n    \"nlp\": {\n      \"$ref\": \"#/$defs/nlpPolicy\"\n    }\n  },\n  \"additionalProperties\": false,\n  \"$defs\": {\n    \"nonEmptyString\": {\n      \"type\": \"string\",\n      \"minLength\": 1\n    },\n    \"stringSet\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"$ref\": \"#/$defs/nonEmptyString\"\n      }\n    },\n    \"titlePolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"storage\"\n      ],\n      \"properties\": {\n        \"storage\": {\n          \"enum\": [\n            \"filename\",\n            \"frontmatter\"\n          ]\n        },\n        \"filename_format\": {\n          \"enum\": [\n            \"title\",\n            \"zettel\",\n            \"timestamp\",\n            \"uuid\",\n            \"custom\"\n          ]\n        },\n        \"custom_filename_template\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        }\n      },\n      \"allOf\": [\n        {\n          \"if\": {\n            \"properties\": {\n              \"filename_format\": {\n                \"const\": \"custom\"\n              }\n            },\n            \"required\": [\n              \"filename_format\"\n            ]\n          },\n          \"then\": {\n            \"properties\": {\n              \"custom_filename_template\": {\n                \"$ref\": \"#/$defs/nonEmptyString\"\n              }\n            },\n            \"required\": [\n              \"custom_filename_template\"\n            ]\n          }\n        }\n      ],\n      \"additionalProperties\": true\n    },\n    \"statusDefinition\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"value\",\n        \"label\",\n        \"color\",\n        \"is_completed\",\n        \"is_skipped\",\n        \"exclude_from_cycle\",\n        \"order\",\n        \"auto_archive\",\n        \"auto_archive_delay_minutes\"\n      ],\n      \"properties\": {\n        \"value\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"label\": {\n          \"type\": \"string\"\n        },\n        \"color\": {\n          \"type\": \"string\"\n        },\n        \"icon\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"is_completed\": {\n          \"type\": \"boolean\"\n        },\n        \"is_skipped\": {\n          \"type\": \"boolean\"\n        },\n        \"exclude_from_cycle\": {\n          \"type\": \"boolean\"\n        },\n        \"next_status\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"order\": {\n          \"type\": \"number\"\n        },\n        \"auto_archive\": {\n          \"type\": \"boolean\"\n        },\n        \"auto_archive_delay_minutes\": {\n          \"type\": \"number\",\n          \"minimum\": 0\n        }\n      },\n      \"additionalProperties\": true\n    },\n    \"statusPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"values\",\n        \"default\",\n        \"completed_values\",\n        \"definitions\"\n      ],\n      \"properties\": {\n        \"values\": {\n          \"$ref\": \"#/$defs/stringSet\"\n        },\n        \"default\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"completed_values\": {\n          \"$ref\": \"#/$defs/stringSet\"\n        },\n        \"skipped_values\": {\n          \"$ref\": \"#/$defs/stringSet\"\n        },\n        \"default_skipped\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"definitions\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/$defs/statusDefinition\"\n          }\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"priorityDefinition\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"value\",\n        \"label\",\n        \"color\",\n        \"weight\"\n      ],\n      \"properties\": {\n        \"value\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"label\": {\n          \"type\": \"string\"\n        },\n        \"color\": {\n          \"type\": \"string\"\n        },\n        \"icon\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"weight\": {\n          \"type\": \"number\"\n        }\n      },\n      \"additionalProperties\": true\n    },\n    \"priorityPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"values\",\n        \"default\",\n        \"definitions\"\n      ],\n      \"properties\": {\n        \"values\": {\n          \"$ref\": \"#/$defs/stringSet\"\n        },\n        \"default\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"definitions\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/$defs/priorityDefinition\"\n          }\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"recurrencePolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"syntax\",\n        \"maintain_due_date_offset\",\n        \"reset_body_checkboxes\"\n      ],\n      \"properties\": {\n        \"syntax\": {\n          \"const\": \"tasknotes\"\n        },\n        \"maintain_due_date_offset\": {\n          \"type\": \"boolean\"\n        },\n        \"reset_body_checkboxes\": {\n          \"type\": \"boolean\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"occurrencePolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"identity_roles\",\n        \"default_materialization\",\n        \"default_next_trigger\"\n      ],\n      \"properties\": {\n        \"identity_roles\": {\n          \"const\": [\n            \"recurrenceParent\",\n            \"occurrenceDate\"\n          ]\n        },\n        \"default_materialization\": {\n          \"enum\": [\n            \"manual\",\n            \"on_completion\",\n            \"rolling\"\n          ]\n        },\n        \"default_next_trigger\": {\n          \"enum\": [\n            \"completion\",\n            \"completion_or_skip\"\n          ]\n        },\n        \"past_horizon\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"future_horizon\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"linkPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"accepted_formats\",\n        \"write_format\"\n      ],\n      \"properties\": {\n        \"accepted_formats\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"uniqueItems\": true,\n          \"items\": {\n            \"enum\": [\n              \"wikilink\",\n              \"markdown\"\n            ]\n          }\n        },\n        \"write_format\": {\n          \"enum\": [\n            \"wikilink\",\n            \"markdown\"\n          ]\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"archivePolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"archived_tag\",\n        \"move_on_archive\"\n      ],\n      \"properties\": {\n        \"archived_tag\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"move_on_archive\": {\n          \"type\": \"boolean\"\n        },\n        \"folder\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"timeTrackingPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"auto_stop_on_complete\"\n      ],\n      \"properties\": {\n        \"auto_stop_on_complete\": {\n          \"type\": \"boolean\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"templatingPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"enabled\",\n        \"occurrence_enabled\"\n      ],\n      \"properties\": {\n        \"enabled\": {\n          \"type\": \"boolean\"\n        },\n        \"template_path\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"occurrence_enabled\": {\n          \"type\": \"boolean\"\n        },\n        \"occurrence_template_path\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"failure_mode\": {\n          \"enum\": [\n            \"error\",\n            \"warning_fallback\"\n          ]\n        },\n        \"unknown_variable_policy\": {\n          \"enum\": [\n            \"preserve\",\n            \"empty\"\n          ]\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"nlpTrigger\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"property_id\",\n        \"trigger\",\n        \"enabled\"\n      ],\n      \"properties\": {\n        \"property_id\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"trigger\": {\n          \"$ref\": \"#/$defs/nonEmptyString\"\n        },\n        \"enabled\": {\n          \"type\": \"boolean\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"nlpPolicy\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"triggers\"\n      ],\n      \"properties\": {\n        \"triggers\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/$defs/nlpTrigger\"\n          }\n        }\n      },\n      \"additionalProperties\": false\n    }\n  }\n}\n"
    }
  ],
  "provides": [
    {
      "id": "tasknotes.task",
      "version": "0.3.0-rc.3",
      "digest": "sha256:48b9017ac0896ffbdee4d14fc0325ef86916bf8789da4ac8a4cd246435887155"
    }
  ]
}
