We start with a minimal but powerful set:
- Range Proofs
- e.g.
age >= 18, score between A and B
- Set Membership / Non-Membership
- e.g. “country in [EU countries]”, “not blacklisted”
- Equality / Linkage Proofs
- e.g. “same identity as before”, “same address used in two services”
- Boolean Combinations
- AND / OR of other templates:
- “age ≥ 18 AND country = PT”
- “has_driver_license OR has_id_card”
Everything else can be built from these building blocks.