ResourceR - declaring what backends need from the resource tree

For onboarding and documentation. When a new contributor wants to implement a backend for their device, they look at the ABC and see the method signatures, but not which resource properties their implementation actually needs to access. Today the only way to learn that is reading existing backends line by line. A declaration of resource needs per backend would make that immediately visible.

Not specifically about serialization, but related yes. More about making backends self-documenting. For complex backends the declaration might approach the full tree, but for many simpler devices it would be a short list. Your own remark in this post, “the smallest set of atomic commands which are easy to implement to make it easy to add new machines” already does this for plate readers, read_positions only gives the backend coordinates, not the full plate. Declaring resource needs per backend is a similar principle applied more broadly: what is the smallest set of resource properties this backend actually needs? We already declare capabilities per device (a Byonoy only needs absorbance, a Synergy needs absorbance, fluorescence, and luminescence). This is the same line of thinking applied to inputs rather than outputs

1 Like