Hi! I would rely on #:substitutable? instead of relying on a new #:distributable? flag that the daemon doesn’t know about anyway.
With that in mind, ‘guix publish’ in ‘render-nar’ could have an extra check in addition to ‘valid-path?’: ‘substitutable-path?’. One way to implement ‘substitutable-path?’ is by (1) getting a “deriver” of the store item with ‘valid-derivers’, and (2) checking whether the returned derivation (if any) passes ‘substitutable-derivation?’. One downside is that this extra check could be a bit costly, but it’s a cost one would only pay when not using ‘--cache’. Does that make sense? HTH, Ludo’.
