We can introduce an arbitrary number of placement types with the placement_type attribute. Placements are grouped together with other placements that share their placement type. In the placement rules, we can query the distance to some non-particular element of any of these sets, which is useful for ensuring that we never place too close or too far away from something. For example, in the campaign mode, we have a "village" placement_type group, and we can use that to write a rule that requests that a placement is placed within [x, y] chunks of a village. (We _could_ choose a particular village, but in this case, we just want it to be near _some_ village.)
{
"distance": {
"chunk_distance_from_parent": 25,
"distance_to_zero_score": 10,
"tag_parent": "village",
"weight": 3
}
}