Das sieht mir eher nach einem ExtendScript aus.
Typische UXP Scripte - kann das nur von InDesign Seite aus beurteilen - müssen sich die Terminologie des Programms erst explizit abholen:
{ app } = require("indesign");
Oder entsprechend für Photoshop. Ebenso andere Symbole wie ExportOptionsSaveForWeb, SaveDocumentType.
Wie weit man PS ExtendScript 1:1 übertragen kann weiss ich nicht, die zur Verfügung gestellten Funktionen sollen massiv überarbeitet worden sein.
Der Zeitpunkt des Scriptlaufs - der das frei herumstehende main() ausführt - ist der Programmstart oder die Installation des "Plugins". Wenn es statt dessen auf Knopfdruck starten soll, muss wie oben geschrieben ein entrypoint angelegt werden, etwa ein "command". Solche Commands erscheinen dann in der Plugins Palette. Sonst eben ein Menü, oder HTML basiertes UI.
Also, im Beispiel von der Adobe-Seite würde dann unterhalb von "command1" eine Zeile
stehen. - main ohne die folgenden Klammern, es soll ja die Funktion installiert werden, nicht deren Ergebnis.