crowdypy 0.13.0.dev1__tar.gz → 0.14.0.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/MIGRATION.md +19 -0
  2. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/PKG-INFO +8 -1
  3. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/README.md +7 -0
  4. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/docs/compatibility.md +1 -1
  5. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/docs/parity-matrix.md +94 -3
  6. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/pyproject.toml +8 -8
  7. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/schema.gql +6 -4
  8. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/enums.py +1 -1
  9. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/inputs.py +1 -1
  10. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/operations.py +1 -1
  11. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/__init__.py +36 -0
  12. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/kit.py +100 -1
  13. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/market.py +209 -0
  14. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/player.py +362 -0
  15. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/protocol.py +2 -0
  16. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/runtime.py +11 -1
  17. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_version.py +1 -1
  18. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/__init__.py +36 -0
  19. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/kit.py +100 -1
  20. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/market.py +208 -0
  21. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/player.py +361 -0
  22. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/protocol.py +2 -0
  23. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/runtime.py +11 -1
  24. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/schemas.v1.json +2 -2
  25. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/kit-protocol.json +2192 -0
  26. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/player-host.v1.json +2 -2
  27. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_kit_protocol.py +106 -0
  28. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/uv.lock +1 -1
  29. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/CMakeLists.txt +1 -1
  30. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/PROVENANCE.md +1 -1
  31. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/include/crowdy/kit/economy.hpp +313 -0
  32. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/kit.hpp +48 -2
  33. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/protocol.hpp +2 -0
  34. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/package.json +3 -3
  35. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/src/kit/economy.cpp +356 -0
  36. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/runtime.cpp +10 -0
  37. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdy-studio-diagnostics.v1.json +2 -2
  38. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdyjs-studio-layout.v1.json +2 -2
  39. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/kit-protocol.json +2192 -0
  40. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/.gitattributes +0 -0
  41. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/.gitignore +0 -0
  42. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/.gitleaks.toml +0 -0
  43. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/AGENTS.md +0 -0
  44. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/CMakeLists.txt +0 -0
  45. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/LICENSE +0 -0
  46. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/SECURITY.md +0 -0
  47. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/benchmarks/README.md +0 -0
  48. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/benchmarks/bench_replication.py +0 -0
  49. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/docs/e2e-coverage.md +0 -0
  50. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/licenses/OpenSSL-LICENSE.txt +0 -0
  51. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/common.hpp +0 -0
  52. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/module.cpp +0 -0
  53. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/replication.hpp +0 -0
  54. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/replication_binding.cpp +0 -0
  55. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/session_binding.cpp +0 -0
  56. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/voice_binding.cpp +0 -0
  57. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/native/wire_binding.cpp +0 -0
  58. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/Actor.graphql +0 -0
  59. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/Actors.graphql +0 -0
  60. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/BatchLookupActors.graphql +0 -0
  61. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/CreateActor.graphql +0 -0
  62. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/DeleteActor.graphql +0 -0
  63. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/UpdateActor.graphql +0 -0
  64. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/UpdateActorState.graphql +0 -0
  65. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppAccessTiers.graphql +0 -0
  66. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppFeatures.graphql +0 -0
  67. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppGrantMemberCandidates.graphql +0 -0
  68. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppUserAccessByApp.graphql +0 -0
  69. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/ArchiveAccessTier.graphql +0 -0
  70. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/ClaimFreeAppAccess.graphql +0 -0
  71. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/CreateAccessTier.graphql +0 -0
  72. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/DefineAppFeature.graphql +0 -0
  73. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantAppAccess.graphql +0 -0
  74. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantMyAppAccess.graphql +0 -0
  75. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantTierFeature.graphql +0 -0
  76. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/MyAppAccess.graphql +0 -0
  77. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RevokeAppAccess.graphql +0 -0
  78. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RevokeTierFeature.graphql +0 -0
  79. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RuntimePermissions.graphql +0 -0
  80. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/SuspendAppAccess.graphql +0 -0
  81. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/TierFeatures.graphql +0 -0
  82. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/UpdateAccessTier.graphql +0 -0
  83. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/App.graphql +0 -0
  84. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppBySlug.graphql +0 -0
  85. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppDiscovery.graphql +0 -0
  86. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppsForOrg.graphql +0 -0
  87. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/ArchiveApp.graphql +0 -0
  88. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/CodeAdmissions.graphql +0 -0
  89. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/CreateApp.graphql +0 -0
  90. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/MarketplaceApps.graphql +0 -0
  91. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/MyApps.graphql +0 -0
  92. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/PlaceableDatacenters.graphql +0 -0
  93. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/UpdateApp.graphql +0 -0
  94. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/auth/Logout.graphql +0 -0
  95. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/auth/LogoutAllDevices.graphql +0 -0
  96. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/avatars/Avatars.graphql +0 -0
  97. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/AppBudget.graphql +0 -0
  98. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/AppBudgets.graphql +0 -0
  99. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/SetAppBudget.graphql +0 -0
  100. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/WalletBalance.graphql +0 -0
  101. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/WalletTransactions.graphql +0 -0
  102. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/AddChannelMember.graphql +0 -0
  103. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/BanChannelMember.graphql +0 -0
  104. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/Channel.graphql +0 -0
  105. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelMembers.graphql +0 -0
  106. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelPolicy.graphql +0 -0
  107. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelRoles.graphql +0 -0
  108. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/Channels.graphql +0 -0
  109. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/CreateChannel.graphql +0 -0
  110. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/CreateChannelRole.graphql +0 -0
  111. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/DeleteChannel.graphql +0 -0
  112. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/DeleteChannelRole.graphql +0 -0
  113. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/JoinChannel.graphql +0 -0
  114. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/LeaveChannel.graphql +0 -0
  115. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/MyChannels.graphql +0 -0
  116. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/RemoveChannelMember.graphql +0 -0
  117. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/RequestToJoinChannel.graphql +0 -0
  118. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/SetChannelMemberRoles.graphql +0 -0
  119. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/SetChannelPolicy.graphql +0 -0
  120. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UnbanChannelMember.graphql +0 -0
  121. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UpdateChannel.graphql +0 -0
  122. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UpdateChannelRole.graphql +0 -0
  123. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunk.graphql +0 -0
  124. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunkLods.graphql +0 -0
  125. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunksByDistance.graphql +0 -0
  126. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetVoxelList.graphql +0 -0
  127. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunk.graphql +0 -0
  128. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunkLods.graphql +0 -0
  129. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunkState.graphql +0 -0
  130. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/crowdyStudio/CrowdyStudio.graphql +0 -0
  131. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/exec/Exec.graphql +0 -0
  132. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/gameApps/GameApps.graphql +0 -0
  133. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/CreateGridChannel.graphql +0 -0
  134. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/GridChannels.graphql +0 -0
  135. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/MintGridToken.graphql +0 -0
  136. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/host/Host.graphql +0 -0
  137. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/inputLog/InputLogMessages.graphql +0 -0
  138. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/inputLog/InputLogSessions.graphql +0 -0
  139. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/marketplace/Marketplace.graphql +0 -0
  140. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrgRole.graphql +0 -0
  141. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrgToken.graphql +0 -0
  142. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrganization.graphql +0 -0
  143. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/DeleteOrgRole.graphql +0 -0
  144. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/InviteOrgMember.graphql +0 -0
  145. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/MemberRoles.graphql +0 -0
  146. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/MyOrganizations.graphql +0 -0
  147. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgMembers.graphql +0 -0
  148. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgPermissions.graphql +0 -0
  149. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgRoles.graphql +0 -0
  150. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgTokens.graphql +0 -0
  151. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/Organization.graphql +0 -0
  152. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrganizationBySlug.graphql +0 -0
  153. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/RemoveOrgMember.graphql +0 -0
  154. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/RevokeOrgToken.graphql +0 -0
  155. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgMemberRoles.graphql +0 -0
  156. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgRole.graphql +0 -0
  157. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgToken.graphql +0 -0
  158. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/CapturePaypalCheckout.graphql +0 -0
  159. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/CreateCheckout.graphql +0 -0
  160. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/MyCheckouts.graphql +0 -0
  161. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/platform/PlatformConfig.graphql +0 -0
  162. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/playerWallet/PlayerWallet.graphql +0 -0
  163. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/DeleteQuota.graphql +0 -0
  164. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/EffectiveQuota.graphql +0 -0
  165. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/QuotasForApp.graphql +0 -0
  166. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/QuotasForOrg.graphql +0 -0
  167. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/SetQuota.graphql +0 -0
  168. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/ActiveGraphQLServers.graphql +0 -0
  169. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/GameClientBootstrap.graphql +0 -0
  170. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/GraphqlServers.graphql +0 -0
  171. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/ServerWithLeastClients.graphql +0 -0
  172. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/VersionInfo.graphql +0 -0
  173. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/sharedEnvironment/SharedEnvironment.graphql +0 -0
  174. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/DeleteUserAppState.graphql +0 -0
  175. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UpdateUserAppState.graphql +0 -0
  176. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UserAppState.graphql +0 -0
  177. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UserAppStates.graphql +0 -0
  178. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/AddTeamMember.graphql +0 -0
  179. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/BanTeamMember.graphql +0 -0
  180. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/CreateTeam.graphql +0 -0
  181. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/CreateTeamRole.graphql +0 -0
  182. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/DeleteTeam.graphql +0 -0
  183. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/DeleteTeamRole.graphql +0 -0
  184. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/JoinTeam.graphql +0 -0
  185. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/LeaveTeam.graphql +0 -0
  186. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/MyTeams.graphql +0 -0
  187. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/RemoveTeamMember.graphql +0 -0
  188. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/RequestToJoinTeam.graphql +0 -0
  189. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/SetTeamMemberRoles.graphql +0 -0
  190. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/SetTeamPolicy.graphql +0 -0
  191. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/Team.graphql +0 -0
  192. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamMembers.graphql +0 -0
  193. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamPolicy.graphql +0 -0
  194. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamRoles.graphql +0 -0
  195. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/Teams.graphql +0 -0
  196. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UnbanTeamMember.graphql +0 -0
  197. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UpdateTeam.graphql +0 -0
  198. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UpdateTeamRole.graphql +0 -0
  199. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/teleport/TeleportRequest.graphql +0 -0
  200. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/AppGraphqlOperations.graphql +0 -0
  201. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/AppUsageSummary.graphql +0 -0
  202. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/PlayerPulse.graphql +0 -0
  203. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/DeleteMyAccount.graphql +0 -0
  204. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/FreePlayWindow.graphql +0 -0
  205. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/Me.graphql +0 -0
  206. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/PlayerProfile.graphql +0 -0
  207. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/UpdateGamertag.graphql +0 -0
  208. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/UpdateUserState.graphql +0 -0
  209. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/User.graphql +0 -0
  210. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/ListVoxelUpdatesByDistance.graphql +0 -0
  211. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/ListVoxels.graphql +0 -0
  212. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/RollbackVoxelUpdates.graphql +0 -0
  213. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/UpdateVoxel.graphql +0 -0
  214. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/VoxelUpdateHistory.graphql +0 -0
  215. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/_pins.py +0 -0
  216. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/assert_default_origin.py +0 -0
  217. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/build_openssl.sh +0 -0
  218. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/check_content_policy.py +0 -0
  219. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/check_pin_tiers.py +0 -0
  220. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/cibw_before_all_linux.sh +0 -0
  221. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve-release-tier.sh +0 -0
  222. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve-release-tier.test.sh +0 -0
  223. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve_pypi_version.py +0 -0
  224. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/stamp_version.py +0 -0
  225. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/verify_artifacts.py +0 -0
  226. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/codegen.py +0 -0
  227. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/schema_drift.py +0 -0
  228. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/schema_sync.py +0 -0
  229. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/unasync.py +0 -0
  230. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/scripts/vendor_crowdycpp.py +0 -0
  231. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/__init__.py +0 -0
  232. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_concurrency.py +0 -0
  233. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_default_origin.py +0 -0
  234. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/__init__.py +0 -0
  235. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_grid.py +0 -0
  236. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_native.pyi +0 -0
  237. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_operation.py +0 -0
  238. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/__init__.py +0 -0
  239. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/client.py +0 -0
  240. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/__init__.py +0 -0
  241. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/_base.py +0 -0
  242. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/actors.py +0 -0
  243. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/admin.py +0 -0
  244. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/app_access.py +0 -0
  245. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/apps.py +0 -0
  246. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/auth.py +0 -0
  247. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/avatars.py +0 -0
  248. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/billing.py +0 -0
  249. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/channels.py +0 -0
  250. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/chunks.py +0 -0
  251. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio.py +0 -0
  252. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_agent.py +0 -0
  253. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_github.py +0 -0
  254. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/discovery.py +0 -0
  255. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/exec.py +0 -0
  256. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/game_apps.py +0 -0
  257. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/grids.py +0 -0
  258. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/host.py +0 -0
  259. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/input_log.py +0 -0
  260. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/marketplace.py +0 -0
  261. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/organizations.py +0 -0
  262. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/payments.py +0 -0
  263. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/platform.py +0 -0
  264. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/player_wallet.py +0 -0
  265. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/portal.py +0 -0
  266. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/quotas.py +0 -0
  267. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/server_status.py +0 -0
  268. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/shared_environment.py +0 -0
  269. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/state.py +0 -0
  270. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/teams.py +0 -0
  271. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/teleport.py +0 -0
  272. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/udp.py +0 -0
  273. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/usage.py +0 -0
  274. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/users.py +0 -0
  275. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/voxels.py +0 -0
  276. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/graphql.py +0 -0
  277. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/grid_scope.py +0 -0
  278. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/actions.py +0 -0
  279. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/mirror.py +0 -0
  280. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/__init__.py +0 -0
  281. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/arenas.py +0 -0
  282. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/encounters.py +0 -0
  283. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/instances.py +0 -0
  284. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/leaderboards.py +0 -0
  285. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/matchmaking.py +0 -0
  286. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/minigames.py +0 -0
  287. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/npcs.py +0 -0
  288. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/presence.py +0 -0
  289. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/racing.py +0 -0
  290. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/sessions.py +0 -0
  291. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/tables.py +0 -0
  292. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/tactics.py +0 -0
  293. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/territory.py +0 -0
  294. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/world.py +0 -0
  295. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/realtime.py +0 -0
  296. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/social.py +0 -0
  297. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/store.py +0 -0
  298. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/topology.py +0 -0
  299. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/wire.py +0 -0
  300. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/rediscover.py +0 -0
  301. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/stores.py +0 -0
  302. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/world.py +0 -0
  303. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/auth_state.py +0 -0
  304. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/client.py +0 -0
  305. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/codecs.py +0 -0
  306. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/datacenter_redirect.py +0 -0
  307. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/__init__.py +0 -0
  308. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/_base.py +0 -0
  309. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/actors.py +0 -0
  310. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/admin.py +0 -0
  311. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/app_access.py +0 -0
  312. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/apps.py +0 -0
  313. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/auth.py +0 -0
  314. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/avatars.py +0 -0
  315. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/billing.py +0 -0
  316. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/channels.py +0 -0
  317. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/chunks.py +0 -0
  318. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio.py +0 -0
  319. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio_agent.py +0 -0
  320. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio_github.py +0 -0
  321. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/discovery.py +0 -0
  322. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/exec.py +0 -0
  323. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/game_apps.py +0 -0
  324. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/grids.py +0 -0
  325. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/host.py +0 -0
  326. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/input_log.py +0 -0
  327. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/marketplace.py +0 -0
  328. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/organizations.py +0 -0
  329. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/payments.py +0 -0
  330. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/platform.py +0 -0
  331. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/player_wallet.py +0 -0
  332. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/portal.py +0 -0
  333. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/quotas.py +0 -0
  334. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/server_status.py +0 -0
  335. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/shared_environment.py +0 -0
  336. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/state.py +0 -0
  337. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/teams.py +0 -0
  338. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/teleport.py +0 -0
  339. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/udp.py +0 -0
  340. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/usage.py +0 -0
  341. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/users.py +0 -0
  342. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/voxels.py +0 -0
  343. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/enums.py +0 -0
  344. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/errors.py +0 -0
  345. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/estate.py +0 -0
  346. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/exec_gateway.py +0 -0
  347. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/graphql.py +0 -0
  348. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/grid_scope.py +0 -0
  349. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/inputs.py +0 -0
  350. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/actions.py +0 -0
  351. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/mirror.py +0 -0
  352. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/__init__.py +0 -0
  353. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/arenas.py +0 -0
  354. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/encounters.py +0 -0
  355. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/instances.py +0 -0
  356. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/leaderboards.py +0 -0
  357. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/matchmaking.py +0 -0
  358. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/minigames.py +0 -0
  359. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/npcs.py +0 -0
  360. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/presence.py +0 -0
  361. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/racing.py +0 -0
  362. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/sessions.py +0 -0
  363. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/tables.py +0 -0
  364. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/tactics.py +0 -0
  365. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/territory.py +0 -0
  366. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/world.py +0 -0
  367. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/realtime.py +0 -0
  368. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/social.py +0 -0
  369. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/store.py +0 -0
  370. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/topology.py +0 -0
  371. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/wire.py +0 -0
  372. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/lb_cookie.py +0 -0
  373. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/media.py +0 -0
  374. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/pkce.py +0 -0
  375. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/__init__.py +0 -0
  376. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/agent_errors.py +0 -0
  377. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/agent_types.py +0 -0
  378. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/json_schema.py +0 -0
  379. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/schemas.py +0 -0
  380. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/types.py +0 -0
  381. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/py.typed +0 -0
  382. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/rediscover.py +0 -0
  383. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/replication.py +0 -0
  384. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/session.py +0 -0
  385. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/stores.py +0 -0
  386. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/__init__.py +0 -0
  387. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/client_tick_interval.py +0 -0
  388. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/controller.py +0 -0
  389. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/diagnostics.py +0 -0
  390. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/github_new_repo.py +0 -0
  391. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/layout.py +0 -0
  392. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/models.py +0 -0
  393. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/starter_projects.py +0 -0
  394. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/subscriptions.py +0 -0
  395. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/sync.py +0 -0
  396. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/utils.py +0 -0
  397. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/wire.py +0 -0
  398. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/world.py +0 -0
  399. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/conftest.py +0 -0
  400. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/__init__.py +0 -0
  401. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/conftest.py +0 -0
  402. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_identity.py +0 -0
  403. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_input_log.py +0 -0
  404. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_open_grid_exec_gateway.py +0 -0
  405. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_ranged_channel.py +0 -0
  406. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_replication.py +0 -0
  407. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_studio.py +0 -0
  408. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_world.py +0 -0
  409. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_world_data.py +0 -0
  410. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/README.md +0 -0
  411. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/binary-wire-fixtures.json +0 -0
  412. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/exec-client-frames.json +0 -0
  413. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/voice-frames.json +0 -0
  414. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/__init__.py +0 -0
  415. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/__init__.py +0 -0
  416. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_crowdycpp_roots.py +0 -0
  417. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_input_log_reads.py +0 -0
  418. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_org_domains.py +0 -0
  419. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_social_domains.py +0 -0
  420. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_studio_exec_domains.py +0 -0
  421. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_world_domains.py +0 -0
  422. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_check_pin_tiers.py +0 -0
  423. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_core.py +0 -0
  424. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_durable_stores.py +0 -0
  425. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_estate_moves.py +0 -0
  426. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_exec_gateway.py +0 -0
  427. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_fixture_provenance.py +0 -0
  428. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_grid_scope.py +0 -0
  429. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_kit.py +0 -0
  430. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_lazy_exports.py +0 -0
  431. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_player_host.py +0 -0
  432. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_refusals.py +0 -0
  433. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_release_versions.py +0 -0
  434. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_replication.py +0 -0
  435. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_sdk_audience.py +0 -0
  436. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_controller.py +0 -0
  437. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_diagnostics.py +0 -0
  438. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_layout.py +0 -0
  439. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_subscriptions.py +0 -0
  440. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_transport.py +0 -0
  441. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_udp_api.py +0 -0
  442. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_voice_frames.py +0 -0
  443. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_wire.py +0 -0
  444. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_world_session.py +0 -0
  445. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tools/e2e/provision.py +0 -0
  446. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tools/fixtures/player_host.mjs +0 -0
  447. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tools/parity/classifications.toml +0 -0
  448. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/tools/parity/parity.py +0 -0
  449. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/LICENSE +0 -0
  450. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CheckPublicHeaders.cmake +0 -0
  451. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyCPPConfig.cmake.in +0 -0
  452. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyFindOpus.cmake +0 -0
  453. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/studio_layout_fixture.hpp.in +0 -0
  454. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/client.hpp +0 -0
  455. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/base64.hpp +0 -0
  456. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/bytes.hpp +0 -0
  457. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/clock.hpp +0 -0
  458. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/crypto.hpp +0 -0
  459. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/logger.hpp +0 -0
  460. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/result.hpp +0 -0
  461. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/spsc.hpp +0 -0
  462. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/uuid.hpp +0 -0
  463. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/crowdy.hpp +0 -0
  464. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/default_origin.hpp +0 -0
  465. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/admin.hpp +0 -0
  466. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/auth.hpp +0 -0
  467. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio.hpp +0 -0
  468. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_agent.hpp +0 -0
  469. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_github.hpp +0 -0
  470. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/discovery.hpp +0 -0
  471. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/domain_base.hpp +0 -0
  472. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/exec.hpp +0 -0
  473. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/game_apps.hpp +0 -0
  474. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/grids.hpp +0 -0
  475. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/groups.hpp +0 -0
  476. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/marketplace.hpp +0 -0
  477. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/player_wallet.hpp +0 -0
  478. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/portal.hpp +0 -0
  479. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/realtime_control.hpp +0 -0
  480. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/server_status.hpp +0 -0
  481. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/types.hpp +0 -0
  482. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/users.hpp +0 -0
  483. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/world_data.hpp +0 -0
  484. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/enums.hpp +0 -0
  485. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/operations.hpp +0 -0
  486. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/async_scope.hpp +0 -0
  487. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/auth_state.hpp +0 -0
  488. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/cancel.hpp +0 -0
  489. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/datacenter_redirect.hpp +0 -0
  490. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/dispatcher.hpp +0 -0
  491. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/errors.hpp +0 -0
  492. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/estate.hpp +0 -0
  493. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/graphql_client.hpp +0 -0
  494. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/http.hpp +0 -0
  495. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/json.hpp +0 -0
  496. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/rediscover.hpp +0 -0
  497. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/subscription_client.hpp +0 -0
  498. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/websocket.hpp +0 -0
  499. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/actions.hpp +0 -0
  500. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/genres.hpp +0 -0
  501. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/mirror.hpp +0 -0
  502. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/modules.hpp +0 -0
  503. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/realtime.hpp +0 -0
  504. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/runtime.hpp +0 -0
  505. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/social.hpp +0 -0
  506. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/topology.hpp +0 -0
  507. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/wire.hpp +0 -0
  508. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/opus.hpp +0 -0
  509. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/video_frames.hpp +0 -0
  510. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/voice_frames.hpp +0 -0
  511. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/adapter.hpp +0 -0
  512. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/player_host.hpp +0 -0
  513. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/schemas.hpp +0 -0
  514. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/types.hpp +0 -0
  515. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/connection.hpp +0 -0
  516. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/session_provider.hpp +0 -0
  517. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/types.hpp +0 -0
  518. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/udp_socket.hpp +0 -0
  519. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/chunk_store.hpp +0 -0
  520. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/codec.hpp +0 -0
  521. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/durable.hpp +0 -0
  522. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/keys.hpp +0 -0
  523. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/stores.hpp +0 -0
  524. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/world_session.hpp +0 -0
  525. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/controller.hpp +0 -0
  526. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/diagnostics.hpp +0 -0
  527. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/editor.hpp +0 -0
  528. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github.hpp +0 -0
  529. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github_layout.hpp +0 -0
  530. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/integration.hpp +0 -0
  531. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/layout.hpp +0 -0
  532. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/models.hpp +0 -0
  533. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/runtime.hpp +0 -0
  534. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/codec.hpp +0 -0
  535. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/protocol.hpp +0 -0
  536. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/world.hpp +0 -0
  537. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/client.cpp +0 -0
  538. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/base64.cpp +0 -0
  539. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/clock.cpp +0 -0
  540. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_default_unavailable.cpp +0 -0
  541. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_openssl.cpp +0 -0
  542. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_unavailable.cpp +0 -0
  543. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/logger.cpp +0 -0
  544. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/uuid.cpp +0 -0
  545. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/domains/exec.cpp +0 -0
  546. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/async_transport.cpp +0 -0
  547. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/auth_state.cpp +0 -0
  548. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/error_extensions.hpp +0 -0
  549. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/errors.cpp +0 -0
  550. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/graphql_client.cpp +0 -0
  551. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/http_curl.cpp +0 -0
  552. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/http_none.cpp +0 -0
  553. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/json.cpp +0 -0
  554. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/subscription_client.cpp +0 -0
  555. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_curl.cpp +0 -0
  556. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_none.cpp +0 -0
  557. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/genres.cpp +0 -0
  558. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/mirror.cpp +0 -0
  559. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/modules.cpp +0 -0
  560. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/protocol.cpp +0 -0
  561. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/topology.cpp +0 -0
  562. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/media/opus.cpp +0 -0
  563. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/player_host/schemas.cpp +0 -0
  564. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/player_host/types.cpp +0 -0
  565. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/connection.cpp +0 -0
  566. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/socket_errors.hpp +0 -0
  567. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/udp_socket.cpp +0 -0
  568. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/session/world_session.cpp +0 -0
  569. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/diagnostics.cpp +0 -0
  570. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/editor.cpp +0 -0
  571. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/integration.cpp +0 -0
  572. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/LICENSE +0 -0
  573. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.c +0 -0
  574. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.h +0 -0
  575. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-client-frames.json +0 -0
  576. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-gateway-cases.json +0 -0
  577. {crowdypy-0.13.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/voice-frames.json +0 -0
@@ -3,6 +3,25 @@
3
3
  CrowdyPy is pre-1.0. Within a minor line, patch releases keep source compatibility; each
4
4
  new minor may change the API. Read the section for every minor you skip.
5
5
 
6
+ ## 0.14.0
7
+
8
+ CrowdyJS 18.13.0 and CrowdyCPP 0.66.0. Additive: the economy, which lives in hub state and is
9
+ not a ledger (HS-52); the `player` and `market` starters need ckx-sdk 0.12.0.
10
+
11
+ - **`kit.player`** (`PlayerKit`), the caller's own hub, keyed by `player_id` (pass it to
12
+ `client.kit()` or let the kit ask who the player is): `watch(*parts)`, `me`, `rules`,
13
+ `profile_of`, `on_event`, and the stores `profile`, `inventory`, `wallet`, `progress`, filled
14
+ as they are read. Its views: `kit.inventory` (`items`, `count`, `discard`, `take_mail`),
15
+ `kit.wallet` (`balances`, `balance`), `kit.progression` (`on_level`, `profile_of`),
16
+ `kit.achievements` (`list`, `on_unlock`), `kit.quests` (`list`, `accept`, `claim`, `step`),
17
+ `kit.crafting` (`recipes`, `craft(recipe, times)`), `kit.loot` (`tables`, `open`),
18
+ `kit.production` (`view`, `collect`).
19
+ - **Markets**: `kit.shops.at(key)` (`vendors`, `buy`, `sell`), `kit.market.at(key)` (`book`,
20
+ `order(item=, side=, price=, count=)`, `cancel`, `orders` mirrored) and `kit.trades.at(key)`
21
+ (`open`, `offer`, `accept`, `decline`, `mine` mirrored).
22
+ - **`KIT_CODES["UNAVAILABLE"]`**: a hub refuses a change it could not finish because another hub
23
+ did not answer and keeps no receipt; the kit sends a call with an action id again.
24
+
6
25
  ## 0.13.0
7
26
 
8
27
  CrowdyJS 18.12.0 and CrowdyCPP 0.65.0. Additive: a kit module per ck-exec genre starter
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crowdypy
3
- Version: 0.13.0.dev1
3
+ Version: 0.14.0.dev1
4
4
  Summary: Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core
5
5
  Keywords: crowded-kingdoms,multiplayer,replication,graphql,sdk,udp
6
6
  Author: Crowded Kingdoms
@@ -51,6 +51,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
51
51
  client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
52
52
  wheel. Python never touches a datagram.
53
53
 
54
+ **v0.14.0: the economy (CrowdyJS 18.13.0, CrowdyCPP 0.66.0).** `kit.player`, the caller's own
55
+ `player` hub, and its views `kit.inventory`, `kit.wallet`, `kit.progression`,
56
+ `kit.achievements`, `kit.quests`, `kit.crafting`, `kit.loot` and `kit.production`; markets by
57
+ name: `kit.shops.at(key)`, `kit.market.at(key)` and `kit.trades.at(key)`. It lives in hub state
58
+ and is not a ledger. A change refused `unavailable` is sent again with its action id. They need
59
+ ckx-sdk 0.12.1 in the tier's compute toolchain (dev: v1.15.0).
60
+
54
61
  **v0.13.0: the genre starters (CrowdyJS 18.12.0, CrowdyCPP 0.65.0).** Nine more kit modules,
55
62
  one per ck-exec genre starter: `kit.leaderboards.board(name)`, `kit.tables.table(key)` (the
56
63
  caller's hand as private state), `kit.tactics.battle(key)`, `kit.encounters.encounter(key)`,
@@ -11,6 +11,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
11
11
  client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
12
12
  wheel. Python never touches a datagram.
13
13
 
14
+ **v0.14.0: the economy (CrowdyJS 18.13.0, CrowdyCPP 0.66.0).** `kit.player`, the caller's own
15
+ `player` hub, and its views `kit.inventory`, `kit.wallet`, `kit.progression`,
16
+ `kit.achievements`, `kit.quests`, `kit.crafting`, `kit.loot` and `kit.production`; markets by
17
+ name: `kit.shops.at(key)`, `kit.market.at(key)` and `kit.trades.at(key)`. It lives in hub state
18
+ and is not a ledger. A change refused `unavailable` is sent again with its action id. They need
19
+ ckx-sdk 0.12.1 in the tier's compute toolchain (dev: v1.15.0).
20
+
14
21
  **v0.13.0: the genre starters (CrowdyJS 18.12.0, CrowdyCPP 0.65.0).** Nine more kit modules,
15
22
  one per ck-exec genre starter: `kit.leaderboards.board(name)`, `kit.tables.table(key)` (the
16
23
  caller's hand as private state), `kit.tactics.battle(key)`, `kit.encounters.encounter(key)`,
@@ -5,7 +5,7 @@ are in `pyproject.toml` (`[project].version`, `[tool.crowdypy.crowdyjs]`,
5
5
  `[tool.crowdypy.crowdycpp]`); `tests/unit/test_release_versions.py` refuses this page when
6
6
  its version disagrees.
7
7
 
8
- - CrowdyPy `0.13.0`
8
+ - CrowdyPy `0.14.0`
9
9
  - API surface: CrowdyJS (the pinned version and commit in `pyproject.toml`); the generated
10
10
  `docs/parity-matrix.md` lists every covered method, every native equivalent and every
11
11
  browser exclusion with its reason. The gate is strict: there are no portable gaps, and a
@@ -4,14 +4,14 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
4
4
 
5
5
  ## Target
6
6
 
7
- - CrowdyJS: `18.12.0` at `43faedd482469ba520b17097b3a67509d029a59d`
8
- - CrowdyCPP (native core): `0.65.0` at `866804861bd319a6f376db2dd24b9b6d2f14900c`
7
+ - CrowdyJS: `18.13.0` at `7aeee709ad661c836a045f2d396c9a867f1d278a`
8
+ - CrowdyCPP (native core): `0.66.0` at `d57cafe80c48c45fdf9ae14309d59b80d466d308`
9
9
  - schema.gql identical to CrowdyJS's: yes
10
10
  - Gate mode: strict portable parity (every portable gap is release-blocking)
11
11
 
12
12
  ## Summary
13
13
 
14
- - Covered: 1261
14
+ - Covered: 1352
15
15
  - Portable gap: 0
16
16
  - Native equivalent: 44
17
17
  - Browser exclusion: 113
@@ -448,6 +448,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
448
448
 
449
449
  | CrowdyJS -> CrowdyPy | Status |
450
450
  |---|---|
451
+ | `AchievementsKit -> AchievementsKit` | covered |
451
452
  | `ActorClient -> ActorClient` | covered |
452
453
  | `ActorInbox -> ActorInbox` | covered |
453
454
  | `ActorsAPI -> ActorsAPI` | covered |
@@ -467,6 +468,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
467
468
  | `ChunkStore -> ChunkStore` | covered |
468
469
  | `ChunksAPI -> ChunksAPI` | covered |
469
470
  | `CollectionMirror -> CollectionMirror` | covered |
471
+ | `CraftingKit -> CraftingKit` | covered |
470
472
  | `CrowdyClient -> AsyncCrowdyClient` | covered |
471
473
  | `CrowdyStudioAPI -> CrowdyStudioAPI` | covered |
472
474
  | `CrowdyStudioController -> CrowdyStudioController` | covered |
@@ -497,13 +499,18 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
497
499
  | `InputLogAPI -> InputLogAPI` | covered |
498
500
  | `InstanceRun -> InstanceRun` | covered |
499
501
  | `InstancesKit -> InstancesKit` | covered |
502
+ | `InventoryKit -> InventoryKit` | covered |
500
503
  | `KitError -> KitError` | covered |
501
504
  | `KitRuntime -> KitRuntime` | covered |
502
505
  | `KitTopology -> KitTopology` | covered |
503
506
  | `LeaderboardHandle -> LeaderboardHandle` | covered |
504
507
  | `LeaderboardsKit -> LeaderboardsKit` | covered |
505
508
  | `LocalActorStore -> LocalActorStore` | covered |
509
+ | `LootKit -> LootKit` | covered |
510
+ | `MarketCore -> MarketCore` | covered |
511
+ | `MarketHandle -> MarketHandle` | covered |
506
512
  | `MarketplaceAPI -> MarketplaceAPI` | covered |
513
+ | `MarketsKit -> MarketsKit` | covered |
507
514
  | `MatchQueue -> MatchQueue` | covered |
508
515
  | `MatchmakingKit -> MatchmakingKit` | covered |
509
516
  | `MinigamesKit -> MinigamesKit` | covered |
@@ -512,9 +519,13 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
512
519
  | `OrganizationsAPI -> OrganizationsAPI` | covered |
513
520
  | `PaymentsAPI -> PaymentsAPI` | covered |
514
521
  | `PlatformAPI -> PlatformAPI` | covered |
522
+ | `PlayerKit -> PlayerKit` | covered |
515
523
  | `PlayerWalletAPI -> PlayerWalletAPI` | covered |
516
524
  | `PortalAPI -> PortalAPI` | covered |
517
525
  | `PrivateState -> PrivateState` | covered |
526
+ | `ProductionKit -> ProductionKit` | covered |
527
+ | `ProgressionKit -> ProgressionKit` | covered |
528
+ | `QuestsKit -> QuestsKit` | covered |
518
529
  | `QuotasAPI -> QuotasAPI` | covered |
519
530
  | `Race -> Race` | covered |
520
531
  | `RacingKit -> RacingKit` | covered |
@@ -525,6 +536,8 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
525
536
  | `SessionsKit -> SessionsKit` | covered |
526
537
  | `ShardKit -> ShardKit` | covered |
527
538
  | `SharedEnvironmentAPI -> SharedEnvironmentAPI` | covered |
539
+ | `ShopHandle -> ShopHandle` | covered |
540
+ | `ShopsKit -> ShopsKit` | covered |
528
541
  | `SocialKit -> SocialKit` | covered |
529
542
  | `SpectateKit -> SpectateKit` | covered |
530
543
  | `SpectatorHeartbeat -> SpectatorHeartbeat` | covered |
@@ -537,12 +550,15 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
537
550
  | `TeleportAPI -> TeleportAPI` | covered |
538
551
  | `TerritoryKit -> TerritoryKit` | covered |
539
552
  | `TerritoryMap -> TerritoryMap` | covered |
553
+ | `TradeDesk -> TradeDesk` | covered |
554
+ | `TradesKit -> TradesKit` | covered |
540
555
  | `UdpAPI -> UdpAPI` | covered |
541
556
  | `UsageAPI -> UsageAPI` | covered |
542
557
  | `UsersAPI -> UsersAPI` | covered |
543
558
  | `VfsLimitError -> (none)` | browser exclusion — the bounded Monaco / browser-language-worker document workspace |
544
559
  | `VirtualFileSystem -> (none)` | browser exclusion — the bounded Monaco / browser-language-worker document workspace |
545
560
  | `VoxelsAPI -> VoxelsAPI` | covered |
561
+ | `WalletKit -> WalletKit` | covered |
546
562
  | `WorkerLanguageClient -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
547
563
  | `WorkerMessageReader -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
548
564
  | `WorkerMessageWriter -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
@@ -556,6 +572,9 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
556
572
 
557
573
  | CrowdyJS method | Status |
558
574
  |---|---|
575
+ | `AchievementsKit.list` | covered |
576
+ | `AchievementsKit.onUnlock` | covered |
577
+ | `AchievementsKit.watch` | covered |
559
578
  | `ActorClient.join` | covered |
560
579
  | `ActorClient.sendEvent` | covered |
561
580
  | `ActorClient.sendState` | covered |
@@ -731,6 +750,8 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
731
750
  | `ChunksAPI.voxelList` | covered |
732
751
  | `CollectionMirror.list` | covered |
733
752
  | `CollectionMirror.member` | covered |
753
+ | `CraftingKit.craft` | covered |
754
+ | `CraftingKit.recipes` | covered |
734
755
  | `CrowdyClient.close` | native equivalent — AsyncCrowdyClient.aclose(), the asyncio spelling; the blocking CrowdyClient has close() |
735
756
  | `CrowdyClient.getToken` | covered |
736
757
  | `CrowdyClient.graphqlEndpoint` | covered |
@@ -905,23 +926,35 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
905
926
  | `GameAppsAPI.setPermissionLimits` | covered |
906
927
  | `GameAppsAPI.transferOwnership` | covered |
907
928
  | `GameAppsAPI.userPermissions` | covered |
929
+ | `GameKitClient.achievements` | covered |
908
930
  | `GameKitClient.arenas` | covered |
909
931
  | `GameKitClient.close` | covered |
932
+ | `GameKitClient.crafting` | covered |
910
933
  | `GameKitClient.emotes` | covered |
911
934
  | `GameKitClient.encounters` | covered |
912
935
  | `GameKitClient.instances` | covered |
936
+ | `GameKitClient.inventory` | covered |
913
937
  | `GameKitClient.leaderboards` | covered |
938
+ | `GameKitClient.loot` | covered |
939
+ | `GameKitClient.market` | covered |
914
940
  | `GameKitClient.matchmaking` | covered |
915
941
  | `GameKitClient.minigames` | covered |
916
942
  | `GameKitClient.npcs` | covered |
943
+ | `GameKitClient.player` | covered |
944
+ | `GameKitClient.production` | covered |
945
+ | `GameKitClient.progression` | covered |
946
+ | `GameKitClient.quests` | covered |
917
947
  | `GameKitClient.racing` | covered |
918
948
  | `GameKitClient.sessions` | covered |
919
949
  | `GameKitClient.shards` | covered |
950
+ | `GameKitClient.shops` | covered |
920
951
  | `GameKitClient.spectate` | covered |
921
952
  | `GameKitClient.tables` | covered |
922
953
  | `GameKitClient.tactics` | covered |
923
954
  | `GameKitClient.territory` | covered |
924
955
  | `GameKitClient.topology` | covered |
956
+ | `GameKitClient.trades` | covered |
957
+ | `GameKitClient.wallet` | covered |
925
958
  | `GameKitClient.world` | covered |
926
959
  | `GameSessionHandle.act` | covered |
927
960
  | `GameSessionHandle.configure` | covered |
@@ -974,6 +1007,11 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
974
1007
  | `InstanceRun.unwatch` | covered |
975
1008
  | `InstanceRun.watch` | covered |
976
1009
  | `InstancesKit.run` | covered |
1010
+ | `InventoryKit.count` | covered |
1011
+ | `InventoryKit.discard` | covered |
1012
+ | `InventoryKit.items` | covered |
1013
+ | `InventoryKit.takeMail` | covered |
1014
+ | `InventoryKit.watch` | covered |
977
1015
  | `KitError.from` | native equivalent — KitError.from_error(error): `from` is a Python keyword |
978
1016
  | `KitRuntime.call` | covered |
979
1017
  | `KitRuntime.close` | covered |
@@ -1009,6 +1047,16 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1009
1047
  | `LocalActorStore.setState` | covered |
1010
1048
  | `LocalActorStore.state` | covered |
1011
1049
  | `LocalActorStore.status` | covered |
1050
+ | `LootKit.open` | covered |
1051
+ | `LootKit.tables` | covered |
1052
+ | `MarketCore.change` | covered |
1053
+ | `MarketHandle.book` | covered |
1054
+ | `MarketHandle.cancel` | covered |
1055
+ | `MarketHandle.order` | covered |
1056
+ | `MarketHandle.orders` | covered |
1057
+ | `MarketHandle.unwatch` | covered |
1058
+ | `MarketHandle.view` | covered |
1059
+ | `MarketHandle.watch` | covered |
1012
1060
  | `MarketplaceAPI.admissionQueue` | covered |
1013
1061
  | `MarketplaceAPI.appAcquisitions` | covered |
1014
1062
  | `MarketplaceAPI.appListings` | covered |
@@ -1022,6 +1070,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1022
1070
  | `MarketplaceAPI.setGridClaimPolicy` | covered |
1023
1071
  | `MarketplaceAPI.setListingStatus` | covered |
1024
1072
  | `MarketplaceAPI.transferListing` | covered |
1073
+ | `MarketsKit.at` | covered |
1025
1074
  | `MatchQueue.accept` | covered |
1026
1075
  | `MatchQueue.configure` | covered |
1027
1076
  | `MatchQueue.decline` | covered |
@@ -1073,6 +1122,18 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1073
1122
  | `PaymentsAPI.mine` | covered |
1074
1123
  | `PaymentsAPI.mineConnection` | covered |
1075
1124
  | `PlatformAPI.config` | covered |
1125
+ | `PlayerKit.call` | covered |
1126
+ | `PlayerKit.inventory` | covered |
1127
+ | `PlayerKit.key` | covered |
1128
+ | `PlayerKit.me` | covered |
1129
+ | `PlayerKit.onEvent` | covered |
1130
+ | `PlayerKit.profile` | covered |
1131
+ | `PlayerKit.profileOf` | covered |
1132
+ | `PlayerKit.progress` | covered |
1133
+ | `PlayerKit.rules` | covered |
1134
+ | `PlayerKit.unwatch` | covered |
1135
+ | `PlayerKit.wallet` | covered |
1136
+ | `PlayerKit.watch` | covered |
1076
1137
  | `PlayerWalletAPI.appMarkupAccrued` | covered |
1077
1138
  | `PlayerWalletAPI.appMarkupAccruedMicrousd` | covered |
1078
1139
  | `PlayerWalletAPI.appPlayerUsage` | covered |
@@ -1107,6 +1168,18 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1107
1168
  | `PrivateState.start` | covered |
1108
1169
  | `PrivateState.stop` | covered |
1109
1170
  | `PrivateState.subscribe` | covered |
1171
+ | `ProductionKit.collect` | covered |
1172
+ | `ProductionKit.view` | covered |
1173
+ | `ProgressionKit.onLevel` | covered |
1174
+ | `ProgressionKit.profile` | covered |
1175
+ | `ProgressionKit.profileOf` | covered |
1176
+ | `ProgressionKit.progress` | covered |
1177
+ | `ProgressionKit.watch` | covered |
1178
+ | `QuestsKit.accept` | covered |
1179
+ | `QuestsKit.claim` | covered |
1180
+ | `QuestsKit.list` | covered |
1181
+ | `QuestsKit.step` | covered |
1182
+ | `QuestsKit.watch` | covered |
1110
1183
  | `QuotasAPI.effective` | covered |
1111
1184
  | `QuotasAPI.forApp` | covered |
1112
1185
  | `QuotasAPI.forOrg` | covered |
@@ -1172,6 +1245,13 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1172
1245
  | `SharedEnvironmentAPI.setReservedThroughput` | covered |
1173
1246
  | `SharedEnvironmentAPI.setSpendCaps` | covered |
1174
1247
  | `SharedEnvironmentAPI.setupPaymentMethod` | covered |
1248
+ | `ShopHandle.buy` | covered |
1249
+ | `ShopHandle.sell` | covered |
1250
+ | `ShopHandle.unwatch` | covered |
1251
+ | `ShopHandle.vendors` | covered |
1252
+ | `ShopHandle.view` | covered |
1253
+ | `ShopHandle.watch` | covered |
1254
+ | `ShopsKit.at` | covered |
1175
1255
  | `SocialKit.chat.join` | covered |
1176
1256
  | `SocialKit.chat.onMessage` | covered |
1177
1257
  | `SocialKit.chat.room` | covered |
@@ -1242,6 +1322,14 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1242
1322
  | `TerritoryMap.reset` | covered |
1243
1323
  | `TerritoryMap.unwatch` | covered |
1244
1324
  | `TerritoryMap.watch` | covered |
1325
+ | `TradeDesk.accept` | covered |
1326
+ | `TradeDesk.decline` | covered |
1327
+ | `TradeDesk.mine` | covered |
1328
+ | `TradeDesk.offer` | covered |
1329
+ | `TradeDesk.open` | covered |
1330
+ | `TradeDesk.unwatch` | covered |
1331
+ | `TradeDesk.watch` | covered |
1332
+ | `TradesKit.at` | covered |
1245
1333
  | `UdpAPI.connect` | covered |
1246
1334
  | `UdpAPI.connectionStatus` | covered |
1247
1335
  | `UdpAPI.disconnect` | covered |
@@ -1281,6 +1369,9 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1281
1369
  | `VoxelsAPI.listByDistance` | covered |
1282
1370
  | `VoxelsAPI.rollback` | covered |
1283
1371
  | `VoxelsAPI.update` | covered |
1372
+ | `WalletKit.balance` | covered |
1373
+ | `WalletKit.balances` | covered |
1374
+ | `WalletKit.watch` | covered |
1284
1375
  | `WorldClient.actor` | covered |
1285
1376
  | `WorldClient.subscribe` | covered |
1286
1377
  | `WorldKit.cancel` | covered |
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
6
  name = "crowdypy"
7
- version = "0.13.0.dev1"
7
+ version = "0.14.0.dev1"
8
8
  description = "Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core"
9
9
  readme = "README.md"
10
10
  license = "MIT AND Apache-2.0"
@@ -119,19 +119,19 @@ environment = { OPENSSL_ROOT_DIR = "C:/vcpkg/installed/x64-windows-static-md" }
119
119
  # --------------------------------------------------------------------------------------
120
120
 
121
121
  [tool.crowdypy.crowdyjs]
122
- version = "18.12.0"
123
- commit = "43faedd482469ba520b17097b3a67509d029a59d"
122
+ version = "18.13.0"
123
+ commit = "7aeee709ad661c836a045f2d396c9a867f1d278a"
124
124
 
125
125
  [tool.crowdypy.crowdycpp]
126
- version = "0.65.0"
127
- tag = "dev/v0.65.0"
128
- commit = "866804861bd319a6f376db2dd24b9b6d2f14900c"
129
- tree-sha256 = "92c909a4bb760548d9745860eb56cfb5f25f578e8d5614fb9c93dc0648082a37"
126
+ version = "0.66.0"
127
+ tag = "dev/v0.66.0"
128
+ commit = "d57cafe80c48c45fdf9ae14309d59b80d466d308"
129
+ tree-sha256 = "e92629e7d769516bdb126b9ad39f489b6d98d6c2f5f03743437127d370a689cf"
130
130
 
131
131
  # schema.gql and operations/ are CrowdyJS's, copied from the commit pinned above by
132
132
  # scripts/schema_sync.py, which records these hashes and re-derives them in CI.
133
133
  [tool.crowdypy.graphql]
134
- schema-sha256 = "acdebaf09f49900f18b4c6e213f47058aa19512f16ca4de4de6343c39ecd492d"
134
+ schema-sha256 = "b8d487684433c99556979ed20283a9abc6b16bb02b9f6508f07600a662265ca0"
135
135
  operations-sha256 = "37b1e06dc4e997bb42506968c50698a184934581a6d94d9471a29d2ce74ff3d3"
136
136
 
137
137
  # The SDL the docs site publishes. scripts/schema_drift.py compares the snapshot against it
@@ -5998,14 +5998,16 @@ type ExecStarter {
5998
5998
  }
5999
5999
 
6000
6000
  """
6001
- The starter packs: four crates and a manifest that deploys them as one app.
6001
+ The starter packs: the starter crates, and a manifest that deploys them as one app.
6002
6002
  """
6003
6003
  type ExecStarterPack {
6004
6004
  """
6005
- The manifest for `execDeploy` with the build’s id: the root `world` hub, and `matchmaker`, `session` and `npcs` under it, each naming its crate.
6005
+ The manifest for `execDeploy` with the build’s id: the root `world` hub and the types under it, each naming its crate.
6006
6006
  """
6007
6007
  manifestJson: String!
6008
- """The crates."""
6008
+ """
6009
+ One entry per node type of the manifest: a crate that serves two types appears twice, so build each crate once.
6010
+ """
6009
6011
  starters: [ExecStarter!]!
6010
6012
  """
6011
6013
  The mod starter: a player’s code on a grid they own, built with `execModBuild` and deployed with `execModDeploy` rather than in the manifest. Null on a toolchain without it.
@@ -7877,7 +7879,7 @@ type Query {
7877
7879
  appId: BigInt!
7878
7880
  ): ExecAppStatus! @requiresPermission(scope: "app", permission: "view_compute_diagnostics", scopeArg: "appId")
7879
7881
  """
7880
- The starter packs, which replace the compute templates: ckx-sdk hub crates for a root world, matchmaking, game sessions, NPCs and mobs, and game genres (leaderboards, cards, tactics, waves, duels, private runs, arenas, races, territory), to pass to `execBuild`, with a manifest for `execDeploy`. `starters` has one entry per node type, so a crate that serves two types appears twice: build it once. Requires the org 'manage_compute' permission.
7882
+ The starter packs, which replace the compute templates: ckx-sdk hub crates for a root world, matchmaking, game sessions, NPCs and mobs, game genres (leaderboards, cards, tactics, waves, duels, private runs, arenas, races, territory), and the economy (a player's own hub, markets), to pass to `execBuild`, with a manifest for `execDeploy`. `starters` has one entry per node type, so a crate that serves two types appears twice: build it once. Requires the org 'manage_compute' permission.
7881
7883
  """
7882
7884
  execStarters(
7883
7885
  """The app they are for."""
@@ -1,6 +1,6 @@
1
1
  """GENERATED by scripts/codegen.py from schema.gql. Do not edit.
2
2
 
3
- schema.gql sha256: acdebaf09f49900f18b4c6e213f47058aa19512f16ca4de4de6343c39ecd492d
3
+ schema.gql sha256: b8d487684433c99556979ed20283a9abc6b16bb02b9f6508f07600a662265ca0
4
4
  """
5
5
 
6
6
  from enum import StrEnum
@@ -4,7 +4,7 @@ Every GraphQL input object as a msgspec Struct. Attributes are snake_case and en
4
4
  under their GraphQL names; an attribute left at UNSET is omitted from the request,
5
5
  which is how the API tells 'not provided' from an explicit null.
6
6
 
7
- schema.gql sha256: acdebaf09f49900f18b4c6e213f47058aa19512f16ca4de4de6343c39ecd492d
7
+ schema.gql sha256: b8d487684433c99556979ed20283a9abc6b16bb02b9f6508f07600a662265ca0
8
8
  """
9
9
 
10
10
  from __future__ import annotations
@@ -1,6 +1,6 @@
1
1
  """GENERATED by scripts/codegen.py from schema.gql and operations/. Do not edit.
2
2
 
3
- schema.gql sha256: acdebaf09f49900f18b4c6e213f47058aa19512f16ca4de4de6343c39ecd492d
3
+ schema.gql sha256: b8d487684433c99556979ed20283a9abc6b16bb02b9f6508f07600a662265ca0
4
4
  operations/ sha256: 37b1e06dc4e997bb42506968c50698a184934581a6d94d9471a29d2ce74ff3d3
5
5
  """
6
6
 
@@ -10,9 +10,29 @@ from crowdypy._sync.kit.modules.arenas import ArenaMatch, ArenasKit
10
10
  from crowdypy._sync.kit.modules.encounters import Encounter, EncountersKit
11
11
  from crowdypy._sync.kit.modules.instances import InstanceRun, InstancesKit
12
12
  from crowdypy._sync.kit.modules.leaderboards import LeaderboardHandle, LeaderboardsKit
13
+ from crowdypy._sync.kit.modules.market import (
14
+ MarketCore,
15
+ MarketHandle,
16
+ MarketsKit,
17
+ ShopHandle,
18
+ ShopsKit,
19
+ TradeDesk,
20
+ TradesKit,
21
+ )
13
22
  from crowdypy._sync.kit.modules.matchmaking import MatchmakingKit, MatchQueue
14
23
  from crowdypy._sync.kit.modules.minigames import Duel, MinigamesKit
15
24
  from crowdypy._sync.kit.modules.npcs import NpcArea, NpcsKit
25
+ from crowdypy._sync.kit.modules.player import (
26
+ AchievementsKit,
27
+ CraftingKit,
28
+ InventoryKit,
29
+ LootKit,
30
+ PlayerKit,
31
+ ProductionKit,
32
+ ProgressionKit,
33
+ QuestsKit,
34
+ WalletKit,
35
+ )
16
36
  from crowdypy._sync.kit.modules.presence import EmotesKit, SpectateKit, SpectatorHeartbeat
17
37
  from crowdypy._sync.kit.modules.racing import BallMatch, Race, RacingKit
18
38
  from crowdypy._sync.kit.modules.sessions import GameSessionHandle, SessionsKit, session_turn
@@ -141,6 +161,7 @@ __all__ = [
141
161
  "KIT_SUBSCRIPTIONS_MAX",
142
162
  "POSE_BYTES",
143
163
  "AbilityEvent",
164
+ "AchievementsKit",
144
165
  "ArenaMatch",
145
166
  "ArenasKit",
146
167
  "BallMatch",
@@ -148,6 +169,7 @@ __all__ = [
148
169
  "CollectionMirror",
149
170
  "ContactDamageEvent",
150
171
  "ControlPointEvent",
172
+ "CraftingKit",
151
173
  "Duel",
152
174
  "EmoteEvent",
153
175
  "EmotesKit",
@@ -160,6 +182,7 @@ __all__ = [
160
182
  "HubState",
161
183
  "InstanceRun",
162
184
  "InstancesKit",
185
+ "InventoryKit",
163
186
  "KitActorState",
164
187
  "KitChatMessage",
165
188
  "KitContainer",
@@ -173,6 +196,10 @@ __all__ = [
173
196
  "KitTopologyPlan",
174
197
  "LeaderboardHandle",
175
198
  "LeaderboardsKit",
199
+ "LootKit",
200
+ "MarketCore",
201
+ "MarketHandle",
202
+ "MarketsKit",
176
203
  "MatchQueue",
177
204
  "MatchmakingKit",
178
205
  "MinigamesKit",
@@ -180,15 +207,21 @@ __all__ = [
180
207
  "NpcArea",
181
208
  "NpcsKit",
182
209
  "OptimisticActionOutcome",
210
+ "PlayerKit",
183
211
  "PossessionEvent",
184
212
  "PrivateState",
213
+ "ProductionKit",
214
+ "ProgressionKit",
185
215
  "ProposalEvent",
216
+ "QuestsKit",
186
217
  "Race",
187
218
  "RaceTimingEvent",
188
219
  "RacingKit",
189
220
  "ScoreEvent",
190
221
  "SessionsKit",
191
222
  "ShardKit",
223
+ "ShopHandle",
224
+ "ShopsKit",
192
225
  "SocialKit",
193
226
  "SpectateKit",
194
227
  "SpectatorHeartbeat",
@@ -198,7 +231,10 @@ __all__ = [
198
231
  "TerritoryKit",
199
232
  "TerritoryMap",
200
233
  "TopicMirror",
234
+ "TradeDesk",
235
+ "TradesKit",
201
236
  "TurnEvent",
237
+ "WalletKit",
202
238
  "WeatherEvent",
203
239
  "WorldKit",
204
240
  "WritableKitStore",
@@ -10,9 +10,21 @@ from crowdypy._sync.kit.modules.arenas import ArenasKit
10
10
  from crowdypy._sync.kit.modules.encounters import EncountersKit
11
11
  from crowdypy._sync.kit.modules.instances import InstancesKit
12
12
  from crowdypy._sync.kit.modules.leaderboards import LeaderboardsKit
13
+ from crowdypy._sync.kit.modules.market import MarketCore, MarketsKit, ShopsKit, TradesKit
13
14
  from crowdypy._sync.kit.modules.matchmaking import MatchmakingKit
14
15
  from crowdypy._sync.kit.modules.minigames import MinigamesKit
15
16
  from crowdypy._sync.kit.modules.npcs import NpcsKit
17
+ from crowdypy._sync.kit.modules.player import (
18
+ AchievementsKit,
19
+ CraftingKit,
20
+ InventoryKit,
21
+ LootKit,
22
+ PlayerKit,
23
+ ProductionKit,
24
+ ProgressionKit,
25
+ QuestsKit,
26
+ WalletKit,
27
+ )
16
28
  from crowdypy._sync.kit.modules.presence import EmotesKit, SpectateKit
17
29
  from crowdypy._sync.kit.modules.racing import RacingKit
18
30
  from crowdypy._sync.kit.modules.sessions import SessionsKit
@@ -65,7 +77,9 @@ class GameKitClient:
65
77
  ``player_id`` are :class:`~crowdypy.kit.runtime.KitRuntime`'s; ``nodes`` renames the starter
66
78
  types a game deployed under other names (``world``, ``matchmaker``, ``session``, ``npcs``,
67
79
  ``leaderboard``, ``deck``, ``tactics``, ``director``, ``minigame``, ``instance``, ``arena``,
68
- ``race``, ``ball``, ``territory``, ``zone``).
80
+ ``race``, ``ball``, ``territory``, ``zone``, ``player``, ``market``). The economy
81
+ (:attr:`player` and its views, :attr:`market`, :attr:`shops`, :attr:`trades`) lives in hub
82
+ state and is not a ledger.
69
83
  """
70
84
 
71
85
  def __init__(
@@ -123,6 +137,9 @@ class GameKitClient:
123
137
  self._arenas: ArenasKit | None = None
124
138
  self._racing: RacingKit | None = None
125
139
  self._territory: TerritoryKit | None = None
140
+ self._player: PlayerKit | None = None
141
+ self._views: dict[str, Any] = {}
142
+ self._markets: dict[str, MarketCore] = {}
126
143
  self._topology: KitTopology | None = None
127
144
  self._spectate: SpectateKit | None = None
128
145
  self._emotes: EmotesKit | None = None
@@ -234,6 +251,88 @@ class GameKitClient:
234
251
  )
235
252
  return self._territory
236
253
 
254
+ @property
255
+ def player(self) -> PlayerKit:
256
+ """The caller's own ``player`` hub: what they own and what they did."""
257
+ if self._player is None:
258
+ self._player = PlayerKit(self.runtime, node_type=self._node("player"))
259
+ return self._player
260
+
261
+ def _view(self, name: str, make: Callable[[], Any]) -> Any:
262
+ if name not in self._views:
263
+ self._views[name] = make()
264
+ return self._views[name]
265
+
266
+ @property
267
+ def inventory(self) -> InventoryKit:
268
+ """The player's items: stacks in slots, and mail for what did not fit."""
269
+ view: InventoryKit = self._view("inventory", lambda: InventoryKit(self.player))
270
+ return view
271
+
272
+ @property
273
+ def wallet(self) -> WalletKit:
274
+ """The player's soft currencies."""
275
+ view: WalletKit = self._view("wallet", lambda: WalletKit(self.player))
276
+ return view
277
+
278
+ @property
279
+ def progression(self) -> ProgressionKit:
280
+ """Experience, levels and public profiles."""
281
+ view: ProgressionKit = self._view("progression", lambda: ProgressionKit(self.player))
282
+ return view
283
+
284
+ @property
285
+ def achievements(self) -> AchievementsKit:
286
+ view: AchievementsKit = self._view("achievements", lambda: AchievementsKit(self.player))
287
+ return view
288
+
289
+ @property
290
+ def quests(self) -> QuestsKit:
291
+ """Quests, first-session tutorials among them."""
292
+ view: QuestsKit = self._view("quests", lambda: QuestsKit(self.player))
293
+ return view
294
+
295
+ @property
296
+ def crafting(self) -> CraftingKit:
297
+ view: CraftingKit = self._view("crafting", lambda: CraftingKit(self.player))
298
+ return view
299
+
300
+ @property
301
+ def loot(self) -> LootKit:
302
+ """Loot tables with pity."""
303
+ view: LootKit = self._view("loot", lambda: LootKit(self.player))
304
+ return view
305
+
306
+ @property
307
+ def production(self) -> ProductionKit:
308
+ """Idle production that catches up on the time away."""
309
+ view: ProductionKit = self._view("production", lambda: ProductionKit(self.player))
310
+ return view
311
+
312
+ def _market(self, key: str) -> MarketCore:
313
+ core = self._markets.get(key)
314
+ if core is None:
315
+ core = self._markets[key] = MarketCore(self.runtime, self._node("market"), key)
316
+ return core
317
+
318
+ @property
319
+ def market(self) -> MarketsKit:
320
+ """Markets' order books."""
321
+ view: MarketsKit = self._view("market", lambda: MarketsKit(self._market))
322
+ return view
323
+
324
+ @property
325
+ def shops(self) -> ShopsKit:
326
+ """Markets' vendors."""
327
+ view: ShopsKit = self._view("shops", lambda: ShopsKit(self._market))
328
+ return view
329
+
330
+ @property
331
+ def trades(self) -> TradesKit:
332
+ """Trades between two players at a market."""
333
+ view: TradesKit = self._view("trades", lambda: TradesKit(self._market))
334
+ return view
335
+
237
336
  @property
238
337
  def topology(self) -> KitTopology:
239
338
  """Composing and deploying the app's tree of starter hubs (developers)."""