@ninowalker True, I was being silly. I think that asking the LogicUnit instance for its ResultSpecs is a good and simple solution.

I also decorated 'value' as a property so one can say "my_unit.my_result.value = 'meow'" and have it still do some type checking.