WIP for review

This has a bunch of ideas I'll document inline
Some rules have a constraint, some don't. This allows telling them apart.