Describe the solution you'd like
A user calling Time#iso8601 is getting a trace with:
/usr/local/bundle/ruby/3.3.0/gems/temporalio-0.4.0-aarch64-linux/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb:66:in `block in initialize'
/usr/local/lib/ruby/3.3.0/time.rb:82:in `zone_offset'
/usr/local/lib/ruby/3.3.0/time.rb:640:in `xmlschema'
This is because the second parameter at https://github.com/ruby/ruby/blob/5124f9ac7513eb590c37717337c430cb93caa151/lib/time.rb#L82 is asking for current time. Ug. We need to find some way to exclude this.
Right now we only accept a basic hash of illegal calls. We probably need a more advanced abstraction for illegal time skipping that allows a workflow-stateful stack to skip checking further down. Put it behind a very generic "check illegal" abstract class so others can have implementations.