Unsure at this stage what querying should return (probably just room IDs) and whether or not it should be based on the graph within the SpaceService (which breaks any cycles) or should be the raw m.space.parent values.
When it comes to setting the parent we also need to think about how to update the m.space.child value on the parent too.