Readonly
even if ids appear multiple times, we only want to count each one once
this is automatically set (hihi) by functions like assertAst to correctly derive what part of capability we check
assertAst
even if ids appear multiple times, we only want to count each one once