From 060665af2da2b44304e11070926ecf4e84b2e3df Mon Sep 17 00:00:00 2001 From: Vinyarion <38413862+VinyarionHyarmendacil@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:20:34 -0600 Subject: [PATCH 1/2] Remove unused LimitedGroupMember, Remerge GroupLimitedMember with GroupMember The LimitedGroupMember schema appears to have been completely unused/unreferenced. The properties often missing from Group(Limited)Member are only missing when explicitly fetching the Group(Limited)Member for the currently logged in user, they are not simply endpoint-specific; the only endpoint-specific property is the `user` property. --- openapi/components/paths/groups.yaml | 6 +- .../groups/GroupLimitedMemberResponse.yaml | 5 -- .../schemas/GroupLimitedMember.yaml | 58 ------------------- openapi/components/schemas/GroupMember.yaml | 25 ++++++-- .../schemas/GroupMemberLimitedUser.yaml | 1 + .../schemas/LimitedGroupMember.yaml | 13 ----- 6 files changed, 25 insertions(+), 83 deletions(-) delete mode 100644 openapi/components/responses/groups/GroupLimitedMemberResponse.yaml delete mode 100644 openapi/components/schemas/GroupLimitedMember.yaml delete mode 100644 openapi/components/schemas/LimitedGroupMember.yaml diff --git a/openapi/components/paths/groups.yaml b/openapi/components/paths/groups.yaml index f176db63..cf8dd7a5 100644 --- a/openapi/components/paths/groups.yaml +++ b/openapi/components/paths/groups.yaml @@ -708,14 +708,14 @@ paths: get: operationId: getGroupMember summary: Get Group Member - description: Returns a LimitedGroup Member. + description: Returns a GroupMember. tags: - groups security: - authCookie: [] responses: "200": - $ref: ../responses/groups/GroupLimitedMemberResponse.yaml + $ref: ../responses/groups/GroupMemberResponse.yaml "401": $ref: ../responses/MissingCredentialsError.yaml "403": @@ -737,7 +737,7 @@ paths: - authCookie: [] responses: "200": - $ref: ../responses/groups/GroupLimitedMemberResponse.yaml + $ref: ../responses/groups/GroupMemberResponse.yaml "401": $ref: ../responses/MissingCredentialsError.yaml "404": diff --git a/openapi/components/responses/groups/GroupLimitedMemberResponse.yaml b/openapi/components/responses/groups/GroupLimitedMemberResponse.yaml deleted file mode 100644 index 207e11b9..00000000 --- a/openapi/components/responses/groups/GroupLimitedMemberResponse.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: Returns a list of GroupMember objects. -content: - application/json: - schema: - $ref: ../../schemas/GroupLimitedMember.yaml diff --git a/openapi/components/schemas/GroupLimitedMember.yaml b/openapi/components/schemas/GroupLimitedMember.yaml deleted file mode 100644 index 460c9c62..00000000 --- a/openapi/components/schemas/GroupLimitedMember.yaml +++ /dev/null @@ -1,58 +0,0 @@ -title: GroupLimitedMember -type: object -description: May be null when attempting to retrieve group membership for a user who is not part of the group -nullable: true -properties: - bannedAt: - type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." - nullable: true - format: date-time - createdAt: - type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." - nullable: true - format: date-time - groupId: - $ref: ./GroupID.yaml - hasJoinedFromPurchase: - type: boolean - id: - $ref: ./GroupMemberID.yaml - isRepresenting: - type: boolean - description: Whether the user is representing the group. This makes the group show up above the name tag in-game. - default: false - example: true - isSubscribedToAnnouncements: - type: boolean - default: false - isSubscribedToEventAnnouncements: - type: boolean - joinedAt: - type: string - nullable: true - format: date-time - lastPostReadAt: - type: string - nullable: true - format: date-time - mRoleIds: - type: array - items: - $ref: ./GroupRoleID.yaml - managerNotes: - type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." - nullable: true - membershipStatus: - $ref: ./GroupMemberStatus.yaml - roleIds: - type: array - items: - $ref: ./GroupRoleID.yaml - userId: - $ref: ./UserID.yaml - visibility: - type: string - example: visible diff --git a/openapi/components/schemas/GroupMember.yaml b/openapi/components/schemas/GroupMember.yaml index b5f2a8df..23b2b435 100644 --- a/openapi/components/schemas/GroupMember.yaml +++ b/openapi/components/schemas/GroupMember.yaml @@ -1,26 +1,31 @@ title: GroupMember type: object +description: May be null when attempting to retrieve group membership for a user who is not part of the group +nullable: true properties: acceptedByDisplayName: type: string + description: Only missing when explitly fetching own user. nullable: true acceptedById: type: string + description: Only missing when explitly fetching own user. nullable: true bannedAt: type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." + description: Only missing when explitly fetching own user. nullable: true format: date-time createdAt: type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." + description: Only missing when explitly fetching own user. nullable: true format: date-time groupId: $ref: ./GroupID.yaml hasJoinedFromPurchase: type: boolean + description: Only missing when explitly fetching own user. id: $ref: ./GroupMemberID.yaml isRepresenting: @@ -33,6 +38,7 @@ properties: default: false isSubscribedToEventAnnouncements: type: boolean + description: Only missing when explitly fetching own user. joinedAt: type: string nullable: true @@ -47,7 +53,7 @@ properties: $ref: ./GroupRoleID.yaml managerNotes: type: string - description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." + description: Only missing when explitly fetching own user. nullable: true membershipStatus: $ref: ./GroupMemberStatus.yaml @@ -57,9 +63,20 @@ properties: $ref: ./GroupRoleID.yaml user: $ref: ./GroupMemberLimitedUser.yaml - nullable: true userId: $ref: ./UserID.yaml visibility: type: string example: visible +required: + - groupId + - id + - isRepresenting + - isSubscribedToAnnouncements + - joinedAt + - lastPostReadAt + - mRoleIds + - membershipStatus + - roleIds + - userId + - visibility diff --git a/openapi/components/schemas/GroupMemberLimitedUser.yaml b/openapi/components/schemas/GroupMemberLimitedUser.yaml index 3861934d..d1cf3814 100644 --- a/openapi/components/schemas/GroupMemberLimitedUser.yaml +++ b/openapi/components/schemas/GroupMemberLimitedUser.yaml @@ -1,6 +1,7 @@ title: GroupMemberLimitedUser type: object description: "Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user." +nullable: true properties: currentAvatarTags: type: array diff --git a/openapi/components/schemas/LimitedGroupMember.yaml b/openapi/components/schemas/LimitedGroupMember.yaml deleted file mode 100644 index 9dd64f51..00000000 --- a/openapi/components/schemas/LimitedGroupMember.yaml +++ /dev/null @@ -1,13 +0,0 @@ -title: LimitedGroupMember -type: object -properties: - groupId: - $ref: ./GroupID.yaml - id: - $ref: ./GroupMemberID.yaml - isRepresenting: - type: boolean - description: Whether the user is representing the group in the world. - example: false - userId: - $ref: ./UserID.yaml From 9f3b4fda9c91b5748e85958ba459574f20239df0 Mon Sep 17 00:00:00 2001 From: jellejurre Date: Sat, 10 Jan 2026 11:52:36 +0100 Subject: [PATCH 2/2] Fix typos, add information to hasJoinedFromPurchase --- openapi/components/schemas/GroupMember.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openapi/components/schemas/GroupMember.yaml b/openapi/components/schemas/GroupMember.yaml index 23b2b435..fb212b44 100644 --- a/openapi/components/schemas/GroupMember.yaml +++ b/openapi/components/schemas/GroupMember.yaml @@ -5,27 +5,27 @@ nullable: true properties: acceptedByDisplayName: type: string - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. nullable: true acceptedById: type: string - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. nullable: true bannedAt: type: string - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. nullable: true format: date-time createdAt: type: string - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. nullable: true format: date-time groupId: $ref: ./GroupID.yaml hasJoinedFromPurchase: type: boolean - description: Only missing when explitly fetching own user. + description: Missing when explicitly fetching own user, or when group isn't linked to a purchase. id: $ref: ./GroupMemberID.yaml isRepresenting: @@ -38,7 +38,7 @@ properties: default: false isSubscribedToEventAnnouncements: type: boolean - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. joinedAt: type: string nullable: true @@ -53,7 +53,7 @@ properties: $ref: ./GroupRoleID.yaml managerNotes: type: string - description: Only missing when explitly fetching own user. + description: Only missing when explicitly fetching own user. nullable: true membershipStatus: $ref: ./GroupMemberStatus.yaml