Yes that sounds like the correct way to set it up.
To check what your script is doing (or if your script is even running) it is helpful to add logging in various places. For example, you can add calls to 'Console.WriteLine' to add a log output to the Event Log window.
For example you can do something like this (simplified example code):
public object Execute(ThemeContentItem item, object value, string parameter, ISimulation sim)
{
Console.WriteLine("Script execution started.");
// Do some stuff
var text = value.ToString();
Console.WriteLine("Script doing stuff with value: " + text);
// Do more stuff
Console.WriteLine("Script execution finished.");
return text;
}
This way you can follow via the logging in the Event Log where the execution flow is going and if the code is even reached.