 
 
 
+enum ScriptingExecutionModel: String {
+    
+    case unrestricted
+    case persistent
+    
+}
+
+
+
 struct ScriptDescriptor {
     
     // MARK: Public Properties

            if let error = error {
                writeToConsole(message: error.localizedDescription, scriptName: scriptName)
            }
        }
    }
    

        
        let info = NSDictionary(contentsOf: url.appendingPathComponent("Contents/Info.plist"))
        
        if let name = info?["CotEditorExecutionModel"] as? String {
            self.executionModel = ScriptingExecutionModel(rawValue: name) ?? .unrestricted
        } else {
            self.executionModel = .unrestricted
        }
        
        if let names = info?["CotEditorHandlers"] as? [String] {
            self.eventTypes = names.flatMap { ScriptingEventType(rawValue: $0) }
        } else {
