The rules are the product, so they cannot live in the UI
If eligibility and visibility rules are enforced by which screens the client renders, anyone who inspects the network can step around them. For this product that is not a bug class, it is a breach of the entire premise.
Convex functions are the source of truth and the enforcement point. The client cannot request what it is not entitled to see, regardless of what it renders.
