Controllers that dynamically create attributes but also use them explicitly in the code currently have to rely on the statically defined attribute being replaced with a dynamic attribute that has a handler to communicate with the device. Instead of just overwriting the attributes they should instead call a a new method to validate against the static type definition (e.g. do the underlying types match) and then update / replace the attribute with the full metadata from the device. If it does not match then it should raise an exception to terminate the application.
Acceptance Criteria
- A method exists to validate an introspected API against a statically defined attribute to ensure type correctness at runtime