As per T113034, the domain model (aka data structure) of a Site object should be able to represent the structure outlined in P3044. In particular, it should allow for:
- multiple ids (of multiple kinds): getIds( $kind ): string[]
- multiple groups (of multiple kinds): getGroups( $kind ): string[] and inGroup( $kind, $group ): bool; The old getGroup() method should be deprecated. getGlobalId() should return the canonical global id.
- arbitrary properties and paths (already supported, but should be revised)
Similarly, the SiteLookup should support lookup by various ids and groups:
- getSiteById( $kind, $id ): Site
- listGroup( $kind, $group ): string[]
Structure outline, for reference: