rules struct