{
  "id": "tasks",
  "title": "Tasks",
  "type": "full",
  "tier": "starlark",
  "route": "/s/tasks",
  "auth": "authenticated",
  "layout": "single",
  "version": "0.1.0",
  "icon": "✅",
  "description": "Task management surface with lifecycle events, webhook integration, and scheduled reminders.",
  "author": "switchboard",

  "permissions": ["db.write", "notifications.send"],

  "api_routes": [
    {"method": "GET",    "path": "/items"},
    {"method": "POST",   "path": "/items"},
    {"method": "GET",    "path": "/items/*"},
    {"method": "PUT",    "path": "/items/*"},
    {"method": "DELETE", "path": "/items/*"},
    {"method": "GET",    "path": "/stats"}
  ],

  "db_tables": {
    "items": {
      "columns": {
        "title":        "text",
        "description":  "text",
        "status":       "text",
        "priority":     "text",
        "assignee_id":  "text",
        "creator_id":   "text",
        "due_date":     "text",
        "tags":         "text",
        "updated_at":   "text",
        "completed_at": "text"
      },
      "indexes": [
        ["status"],
        ["assignee_id"],
        ["creator_id"]
      ]
    }
  },

  "triggers": [
    {
      "type": "event",
      "pattern": "task.*",
      "entry_point": "on_task_event"
    },
    {
      "type": "webhook",
      "slug": "create",
      "entry_point": "on_webhook"
    }
  ],

  "settings": {
    "statuses": {
      "type": "string",
      "label": "Statuses",
      "description": "Comma-separated task statuses",
      "default": "todo,in_progress,done,cancelled"
    },
    "priorities": {
      "type": "string",
      "label": "Priorities",
      "description": "Comma-separated task priorities",
      "default": "low,medium,high,urgent"
    }
  }
}
