{
  "product" : "selra",
  "schema_version" : 1,
  "tools" : [
    {
      "description" : "List photos in the open shoot with their culling state. Paged. The list is the displayed catalog: `total` is the whole shoot, `catalog` is what the app's filter, keepers-only and search leave, and `applied` is the input set that produced it — the app's own filter and sort values, plus the search with its filename needle redacted. `total` minus `catalog` is what the inputs hide. Use the returned ids with rate/set_pick/set_label.",
      "name" : "list_shoot",
      "tier" : "read"
    },
    {
      "description" : "Get the app's current selection: the cursor photo with its culling state, plus `selectedIds` — every tile in the multi-selection, in display order.",
      "name" : "get_selection",
      "tier" : "read"
    },
    {
      "description" : "Set the star rating on one or more photos. -1 = reject, 0 = unrated, 1…5 = stars.",
      "name" : "rate",
      "tier" : "write"
    },
    {
      "description" : "Set the pick flag on one or more photos: pick, none, or reject.",
      "name" : "set_pick",
      "tier" : "write"
    },
    {
      "description" : "Set or clear the colour label on one or more photos (Red/Yellow/Green/Blue/Purple, or null to clear).",
      "name" : "set_label",
      "tier" : "write"
    },
    {
      "description" : "Undo the most recent culling edit (rating/label/pick).",
      "name" : "undo",
      "tier" : "write"
    },
    {
      "description" : "Re-apply the most recently undone culling edit (rating/label/pick).",
      "name" : "redo",
      "tier" : "write"
    },
    {
      "description" : "Open a shoot folder. Starts the scan, background index, and folder watcher, and replaces the current session. Not undoable — there is no undo for opening a folder.",
      "name" : "open_folder",
      "tier" : "write"
    },
    {
      "description" : "Counts for the open shoot from the same progress the toolbar uses: decided/undecided, selects, rejects, colour labels, and whether a scan is still running. A missing folder is an error; an empty open folder is all zeros.",
      "name" : "get_cull_stats",
      "tier" : "read"
    },
    {
      "description" : "Write XMP sidecars next to the original photos for every decided frame. Undecided frames get no sidecar. Originals are never rewritten. Repeating the export is idempotent. Not undoable — sidecars stay on disk — and every call needs confirmation.",
      "name" : "export_xmp",
      "tier" : "destructive"
    }
  ]
}
