TODO: This is unfortunately required to be manually managed and executed anytime the input/output/environment arrays are mutated due to the design of the controller system obscuring away read/write permissions when querying. Need to add accessors and refactor so that this isn't as error prone and remove manual execution at the call sites when mutating aforementioned UPROPERTIES.