That was option #3:
Store this object in a table and load it in the function.
Storing it in a Table and accessing the elements by selecting from the Table. This can be a heavy overhead.
While I can’t don’t know for sure how much overhead that is versus launching into tcl, I do avoid creating temporary tables in performance-sensitive code.