crowdypy 0.12.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 (581) hide show
  1. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/AGENTS.md +3 -1
  2. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/MIGRATION.md +41 -0
  3. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/PKG-INFO +15 -1
  4. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/README.md +14 -0
  5. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/docs/compatibility.md +1 -1
  6. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/docs/parity-matrix.md +209 -3
  7. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/pyproject.toml +8 -8
  8. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/schema.gql +7 -5
  9. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/enums.py +1 -1
  10. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/inputs.py +1 -1
  11. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/operations.py +1 -1
  12. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/__init__.py +67 -2
  13. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/kit.py +366 -0
  14. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/arenas.py +86 -0
  15. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/encounters.py +74 -0
  16. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/instances.py +97 -0
  17. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/leaderboards.py +110 -0
  18. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/market.py +209 -0
  19. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/minigames.py +70 -0
  20. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/player.py +362 -0
  21. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/racing.py +145 -0
  22. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/tables.py +89 -0
  23. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/tactics.py +80 -0
  24. crowdypy-0.14.0.dev1/src/crowdypy/_sync/kit/modules/territory.py +104 -0
  25. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/protocol.py +2 -0
  26. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/runtime.py +11 -1
  27. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_version.py +1 -1
  28. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/__init__.py +67 -2
  29. crowdypy-0.14.0.dev1/src/crowdypy/kit/kit.py +365 -0
  30. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/arenas.py +85 -0
  31. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/encounters.py +73 -0
  32. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/instances.py +96 -0
  33. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/leaderboards.py +109 -0
  34. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/market.py +208 -0
  35. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/minigames.py +69 -0
  36. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/player.py +361 -0
  37. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/racing.py +144 -0
  38. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/tables.py +88 -0
  39. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/tactics.py +79 -0
  40. crowdypy-0.14.0.dev1/src/crowdypy/kit/modules/territory.py +103 -0
  41. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/protocol.py +2 -0
  42. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/runtime.py +11 -1
  43. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/schemas.v1.json +2 -2
  44. crowdypy-0.14.0.dev1/tests/fixtures/kit-protocol.json +11278 -0
  45. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/player-host.v1.json +2 -2
  46. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_kit_protocol.py +405 -2
  47. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/uv.lock +1 -1
  48. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/CMakeLists.txt +1 -1
  49. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/PROVENANCE.md +1 -1
  50. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/include/crowdy/kit/economy.hpp +313 -0
  51. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/include/crowdy/kit/genres.hpp +517 -0
  52. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/kit.hpp +106 -2
  53. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/protocol.hpp +2 -0
  54. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/package.json +3 -3
  55. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/src/kit/economy.cpp +356 -0
  56. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/src/kit/genres.cpp +309 -0
  57. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/runtime.cpp +10 -0
  58. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdy-studio-diagnostics.v1.json +2 -2
  59. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdyjs-studio-layout.v1.json +2 -2
  60. crowdypy-0.14.0.dev1/vendor/CrowdyCPP/tools/parity/fixtures/kit-protocol.json +11278 -0
  61. crowdypy-0.12.0.dev1/src/crowdypy/_sync/kit/kit.py +0 -175
  62. crowdypy-0.12.0.dev1/src/crowdypy/kit/kit.py +0 -174
  63. crowdypy-0.12.0.dev1/tests/fixtures/kit-protocol.json +0 -2360
  64. crowdypy-0.12.0.dev1/vendor/CrowdyCPP/tools/parity/fixtures/kit-protocol.json +0 -2360
  65. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/.gitattributes +0 -0
  66. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/.gitignore +0 -0
  67. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/.gitleaks.toml +0 -0
  68. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/CMakeLists.txt +0 -0
  69. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/LICENSE +0 -0
  70. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/SECURITY.md +0 -0
  71. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/benchmarks/README.md +0 -0
  72. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/benchmarks/bench_replication.py +0 -0
  73. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/docs/e2e-coverage.md +0 -0
  74. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/licenses/OpenSSL-LICENSE.txt +0 -0
  75. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/common.hpp +0 -0
  76. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/module.cpp +0 -0
  77. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/replication.hpp +0 -0
  78. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/replication_binding.cpp +0 -0
  79. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/session_binding.cpp +0 -0
  80. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/voice_binding.cpp +0 -0
  81. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/native/wire_binding.cpp +0 -0
  82. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/Actor.graphql +0 -0
  83. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/Actors.graphql +0 -0
  84. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/BatchLookupActors.graphql +0 -0
  85. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/CreateActor.graphql +0 -0
  86. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/DeleteActor.graphql +0 -0
  87. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/UpdateActor.graphql +0 -0
  88. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/actors/UpdateActorState.graphql +0 -0
  89. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppAccessTiers.graphql +0 -0
  90. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppFeatures.graphql +0 -0
  91. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppGrantMemberCandidates.graphql +0 -0
  92. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/AppUserAccessByApp.graphql +0 -0
  93. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/ArchiveAccessTier.graphql +0 -0
  94. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/ClaimFreeAppAccess.graphql +0 -0
  95. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/CreateAccessTier.graphql +0 -0
  96. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/DefineAppFeature.graphql +0 -0
  97. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantAppAccess.graphql +0 -0
  98. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantMyAppAccess.graphql +0 -0
  99. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/GrantTierFeature.graphql +0 -0
  100. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/MyAppAccess.graphql +0 -0
  101. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RevokeAppAccess.graphql +0 -0
  102. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RevokeTierFeature.graphql +0 -0
  103. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/RuntimePermissions.graphql +0 -0
  104. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/SuspendAppAccess.graphql +0 -0
  105. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/TierFeatures.graphql +0 -0
  106. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/appAccess/UpdateAccessTier.graphql +0 -0
  107. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/App.graphql +0 -0
  108. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppBySlug.graphql +0 -0
  109. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppDiscovery.graphql +0 -0
  110. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/AppsForOrg.graphql +0 -0
  111. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/ArchiveApp.graphql +0 -0
  112. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/CodeAdmissions.graphql +0 -0
  113. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/CreateApp.graphql +0 -0
  114. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/MarketplaceApps.graphql +0 -0
  115. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/MyApps.graphql +0 -0
  116. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/PlaceableDatacenters.graphql +0 -0
  117. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/apps/UpdateApp.graphql +0 -0
  118. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/auth/Logout.graphql +0 -0
  119. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/auth/LogoutAllDevices.graphql +0 -0
  120. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/avatars/Avatars.graphql +0 -0
  121. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/AppBudget.graphql +0 -0
  122. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/AppBudgets.graphql +0 -0
  123. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/SetAppBudget.graphql +0 -0
  124. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/WalletBalance.graphql +0 -0
  125. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/billing/WalletTransactions.graphql +0 -0
  126. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/AddChannelMember.graphql +0 -0
  127. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/BanChannelMember.graphql +0 -0
  128. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/Channel.graphql +0 -0
  129. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelMembers.graphql +0 -0
  130. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelPolicy.graphql +0 -0
  131. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/ChannelRoles.graphql +0 -0
  132. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/Channels.graphql +0 -0
  133. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/CreateChannel.graphql +0 -0
  134. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/CreateChannelRole.graphql +0 -0
  135. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/DeleteChannel.graphql +0 -0
  136. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/DeleteChannelRole.graphql +0 -0
  137. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/JoinChannel.graphql +0 -0
  138. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/LeaveChannel.graphql +0 -0
  139. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/MyChannels.graphql +0 -0
  140. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/RemoveChannelMember.graphql +0 -0
  141. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/RequestToJoinChannel.graphql +0 -0
  142. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/SetChannelMemberRoles.graphql +0 -0
  143. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/SetChannelPolicy.graphql +0 -0
  144. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UnbanChannelMember.graphql +0 -0
  145. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UpdateChannel.graphql +0 -0
  146. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/channels/UpdateChannelRole.graphql +0 -0
  147. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunk.graphql +0 -0
  148. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunkLods.graphql +0 -0
  149. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetChunksByDistance.graphql +0 -0
  150. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/GetVoxelList.graphql +0 -0
  151. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunk.graphql +0 -0
  152. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunkLods.graphql +0 -0
  153. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/chunks/UpdateChunkState.graphql +0 -0
  154. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/crowdyStudio/CrowdyStudio.graphql +0 -0
  155. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/exec/Exec.graphql +0 -0
  156. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/gameApps/GameApps.graphql +0 -0
  157. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/CreateGridChannel.graphql +0 -0
  158. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/GridChannels.graphql +0 -0
  159. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/grids/MintGridToken.graphql +0 -0
  160. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/host/Host.graphql +0 -0
  161. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/inputLog/InputLogMessages.graphql +0 -0
  162. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/inputLog/InputLogSessions.graphql +0 -0
  163. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/marketplace/Marketplace.graphql +0 -0
  164. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrgRole.graphql +0 -0
  165. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrgToken.graphql +0 -0
  166. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/CreateOrganization.graphql +0 -0
  167. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/DeleteOrgRole.graphql +0 -0
  168. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/InviteOrgMember.graphql +0 -0
  169. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/MemberRoles.graphql +0 -0
  170. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/MyOrganizations.graphql +0 -0
  171. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgMembers.graphql +0 -0
  172. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgPermissions.graphql +0 -0
  173. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgRoles.graphql +0 -0
  174. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrgTokens.graphql +0 -0
  175. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/Organization.graphql +0 -0
  176. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/OrganizationBySlug.graphql +0 -0
  177. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/RemoveOrgMember.graphql +0 -0
  178. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/RevokeOrgToken.graphql +0 -0
  179. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgMemberRoles.graphql +0 -0
  180. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgRole.graphql +0 -0
  181. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/organizations/UpdateOrgToken.graphql +0 -0
  182. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/CapturePaypalCheckout.graphql +0 -0
  183. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/CreateCheckout.graphql +0 -0
  184. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/payments/MyCheckouts.graphql +0 -0
  185. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/platform/PlatformConfig.graphql +0 -0
  186. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/playerWallet/PlayerWallet.graphql +0 -0
  187. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/DeleteQuota.graphql +0 -0
  188. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/EffectiveQuota.graphql +0 -0
  189. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/QuotasForApp.graphql +0 -0
  190. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/QuotasForOrg.graphql +0 -0
  191. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/quotas/SetQuota.graphql +0 -0
  192. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/ActiveGraphQLServers.graphql +0 -0
  193. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/GameClientBootstrap.graphql +0 -0
  194. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/GraphqlServers.graphql +0 -0
  195. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/ServerWithLeastClients.graphql +0 -0
  196. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/serverStatus/VersionInfo.graphql +0 -0
  197. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/sharedEnvironment/SharedEnvironment.graphql +0 -0
  198. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/DeleteUserAppState.graphql +0 -0
  199. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UpdateUserAppState.graphql +0 -0
  200. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UserAppState.graphql +0 -0
  201. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/state/UserAppStates.graphql +0 -0
  202. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/AddTeamMember.graphql +0 -0
  203. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/BanTeamMember.graphql +0 -0
  204. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/CreateTeam.graphql +0 -0
  205. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/CreateTeamRole.graphql +0 -0
  206. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/DeleteTeam.graphql +0 -0
  207. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/DeleteTeamRole.graphql +0 -0
  208. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/JoinTeam.graphql +0 -0
  209. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/LeaveTeam.graphql +0 -0
  210. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/MyTeams.graphql +0 -0
  211. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/RemoveTeamMember.graphql +0 -0
  212. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/RequestToJoinTeam.graphql +0 -0
  213. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/SetTeamMemberRoles.graphql +0 -0
  214. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/SetTeamPolicy.graphql +0 -0
  215. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/Team.graphql +0 -0
  216. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamMembers.graphql +0 -0
  217. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamPolicy.graphql +0 -0
  218. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/TeamRoles.graphql +0 -0
  219. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/Teams.graphql +0 -0
  220. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UnbanTeamMember.graphql +0 -0
  221. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UpdateTeam.graphql +0 -0
  222. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teams/UpdateTeamRole.graphql +0 -0
  223. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/teleport/TeleportRequest.graphql +0 -0
  224. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/AppGraphqlOperations.graphql +0 -0
  225. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/AppUsageSummary.graphql +0 -0
  226. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/usage/PlayerPulse.graphql +0 -0
  227. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/DeleteMyAccount.graphql +0 -0
  228. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/FreePlayWindow.graphql +0 -0
  229. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/Me.graphql +0 -0
  230. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/PlayerProfile.graphql +0 -0
  231. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/UpdateGamertag.graphql +0 -0
  232. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/UpdateUserState.graphql +0 -0
  233. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/users/User.graphql +0 -0
  234. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/ListVoxelUpdatesByDistance.graphql +0 -0
  235. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/ListVoxels.graphql +0 -0
  236. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/RollbackVoxelUpdates.graphql +0 -0
  237. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/UpdateVoxel.graphql +0 -0
  238. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/operations/voxels/VoxelUpdateHistory.graphql +0 -0
  239. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/_pins.py +0 -0
  240. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/assert_default_origin.py +0 -0
  241. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/build_openssl.sh +0 -0
  242. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/check_content_policy.py +0 -0
  243. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/check_pin_tiers.py +0 -0
  244. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/cibw_before_all_linux.sh +0 -0
  245. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve-release-tier.sh +0 -0
  246. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve-release-tier.test.sh +0 -0
  247. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/resolve_pypi_version.py +0 -0
  248. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/stamp_version.py +0 -0
  249. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/ci/verify_artifacts.py +0 -0
  250. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/codegen.py +0 -0
  251. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/schema_drift.py +0 -0
  252. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/schema_sync.py +0 -0
  253. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/unasync.py +0 -0
  254. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/scripts/vendor_crowdycpp.py +0 -0
  255. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/__init__.py +0 -0
  256. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_concurrency.py +0 -0
  257. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_default_origin.py +0 -0
  258. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_generated/__init__.py +0 -0
  259. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_grid.py +0 -0
  260. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_native.pyi +0 -0
  261. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_operation.py +0 -0
  262. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/__init__.py +0 -0
  263. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/client.py +0 -0
  264. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/__init__.py +0 -0
  265. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/_base.py +0 -0
  266. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/actors.py +0 -0
  267. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/admin.py +0 -0
  268. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/app_access.py +0 -0
  269. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/apps.py +0 -0
  270. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/auth.py +0 -0
  271. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/avatars.py +0 -0
  272. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/billing.py +0 -0
  273. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/channels.py +0 -0
  274. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/chunks.py +0 -0
  275. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio.py +0 -0
  276. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_agent.py +0 -0
  277. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/crowdy_studio_github.py +0 -0
  278. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/discovery.py +0 -0
  279. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/exec.py +0 -0
  280. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/game_apps.py +0 -0
  281. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/grids.py +0 -0
  282. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/host.py +0 -0
  283. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/input_log.py +0 -0
  284. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/marketplace.py +0 -0
  285. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/organizations.py +0 -0
  286. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/payments.py +0 -0
  287. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/platform.py +0 -0
  288. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/player_wallet.py +0 -0
  289. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/portal.py +0 -0
  290. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/quotas.py +0 -0
  291. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/server_status.py +0 -0
  292. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/shared_environment.py +0 -0
  293. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/state.py +0 -0
  294. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/teams.py +0 -0
  295. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/teleport.py +0 -0
  296. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/udp.py +0 -0
  297. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/usage.py +0 -0
  298. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/users.py +0 -0
  299. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/domains/voxels.py +0 -0
  300. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/graphql.py +0 -0
  301. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/grid_scope.py +0 -0
  302. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/actions.py +0 -0
  303. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/mirror.py +0 -0
  304. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/__init__.py +0 -0
  305. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/matchmaking.py +0 -0
  306. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/npcs.py +0 -0
  307. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/presence.py +0 -0
  308. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/sessions.py +0 -0
  309. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/modules/world.py +0 -0
  310. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/realtime.py +0 -0
  311. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/social.py +0 -0
  312. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/store.py +0 -0
  313. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/topology.py +0 -0
  314. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/kit/wire.py +0 -0
  315. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/rediscover.py +0 -0
  316. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/stores.py +0 -0
  317. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/_sync/world.py +0 -0
  318. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/auth_state.py +0 -0
  319. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/client.py +0 -0
  320. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/codecs.py +0 -0
  321. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/datacenter_redirect.py +0 -0
  322. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/__init__.py +0 -0
  323. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/_base.py +0 -0
  324. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/actors.py +0 -0
  325. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/admin.py +0 -0
  326. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/app_access.py +0 -0
  327. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/apps.py +0 -0
  328. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/auth.py +0 -0
  329. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/avatars.py +0 -0
  330. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/billing.py +0 -0
  331. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/channels.py +0 -0
  332. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/chunks.py +0 -0
  333. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio.py +0 -0
  334. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio_agent.py +0 -0
  335. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/crowdy_studio_github.py +0 -0
  336. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/discovery.py +0 -0
  337. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/exec.py +0 -0
  338. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/game_apps.py +0 -0
  339. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/grids.py +0 -0
  340. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/host.py +0 -0
  341. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/input_log.py +0 -0
  342. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/marketplace.py +0 -0
  343. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/organizations.py +0 -0
  344. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/payments.py +0 -0
  345. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/platform.py +0 -0
  346. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/player_wallet.py +0 -0
  347. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/portal.py +0 -0
  348. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/quotas.py +0 -0
  349. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/server_status.py +0 -0
  350. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/shared_environment.py +0 -0
  351. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/state.py +0 -0
  352. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/teams.py +0 -0
  353. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/teleport.py +0 -0
  354. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/udp.py +0 -0
  355. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/usage.py +0 -0
  356. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/users.py +0 -0
  357. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/domains/voxels.py +0 -0
  358. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/enums.py +0 -0
  359. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/errors.py +0 -0
  360. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/estate.py +0 -0
  361. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/exec_gateway.py +0 -0
  362. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/graphql.py +0 -0
  363. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/grid_scope.py +0 -0
  364. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/inputs.py +0 -0
  365. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/actions.py +0 -0
  366. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/mirror.py +0 -0
  367. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/__init__.py +0 -0
  368. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/matchmaking.py +0 -0
  369. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/npcs.py +0 -0
  370. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/presence.py +0 -0
  371. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/sessions.py +0 -0
  372. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/modules/world.py +0 -0
  373. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/realtime.py +0 -0
  374. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/social.py +0 -0
  375. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/store.py +0 -0
  376. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/topology.py +0 -0
  377. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/kit/wire.py +0 -0
  378. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/lb_cookie.py +0 -0
  379. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/media.py +0 -0
  380. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/pkce.py +0 -0
  381. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/__init__.py +0 -0
  382. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/agent_errors.py +0 -0
  383. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/agent_types.py +0 -0
  384. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/json_schema.py +0 -0
  385. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/schemas.py +0 -0
  386. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/player_host/types.py +0 -0
  387. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/py.typed +0 -0
  388. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/rediscover.py +0 -0
  389. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/replication.py +0 -0
  390. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/session.py +0 -0
  391. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/stores.py +0 -0
  392. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/__init__.py +0 -0
  393. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/client_tick_interval.py +0 -0
  394. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/controller.py +0 -0
  395. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/diagnostics.py +0 -0
  396. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/github_new_repo.py +0 -0
  397. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/layout.py +0 -0
  398. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/models.py +0 -0
  399. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/studio/starter_projects.py +0 -0
  400. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/subscriptions.py +0 -0
  401. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/sync.py +0 -0
  402. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/utils.py +0 -0
  403. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/wire.py +0 -0
  404. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/src/crowdypy/world.py +0 -0
  405. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/conftest.py +0 -0
  406. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/__init__.py +0 -0
  407. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/conftest.py +0 -0
  408. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_identity.py +0 -0
  409. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_input_log.py +0 -0
  410. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_open_grid_exec_gateway.py +0 -0
  411. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_ranged_channel.py +0 -0
  412. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_replication.py +0 -0
  413. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_studio.py +0 -0
  414. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_world.py +0 -0
  415. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/e2e/test_e2e_world_data.py +0 -0
  416. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/README.md +0 -0
  417. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/binary-wire-fixtures.json +0 -0
  418. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/exec-client-frames.json +0 -0
  419. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/fixtures/voice-frames.json +0 -0
  420. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/__init__.py +0 -0
  421. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/__init__.py +0 -0
  422. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_crowdycpp_roots.py +0 -0
  423. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_input_log_reads.py +0 -0
  424. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_org_domains.py +0 -0
  425. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_social_domains.py +0 -0
  426. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_studio_exec_domains.py +0 -0
  427. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/domains/test_world_domains.py +0 -0
  428. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_check_pin_tiers.py +0 -0
  429. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_core.py +0 -0
  430. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_durable_stores.py +0 -0
  431. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_estate_moves.py +0 -0
  432. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_exec_gateway.py +0 -0
  433. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_fixture_provenance.py +0 -0
  434. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_grid_scope.py +0 -0
  435. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_kit.py +0 -0
  436. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_lazy_exports.py +0 -0
  437. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_player_host.py +0 -0
  438. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_refusals.py +0 -0
  439. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_release_versions.py +0 -0
  440. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_replication.py +0 -0
  441. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_sdk_audience.py +0 -0
  442. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_controller.py +0 -0
  443. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_diagnostics.py +0 -0
  444. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_studio_layout.py +0 -0
  445. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_subscriptions.py +0 -0
  446. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_transport.py +0 -0
  447. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_udp_api.py +0 -0
  448. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_voice_frames.py +0 -0
  449. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_wire.py +0 -0
  450. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tests/unit/test_world_session.py +0 -0
  451. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tools/e2e/provision.py +0 -0
  452. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tools/fixtures/player_host.mjs +0 -0
  453. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tools/parity/classifications.toml +0 -0
  454. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/tools/parity/parity.py +0 -0
  455. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/LICENSE +0 -0
  456. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CheckPublicHeaders.cmake +0 -0
  457. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyCPPConfig.cmake.in +0 -0
  458. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/CrowdyFindOpus.cmake +0 -0
  459. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/cmake/studio_layout_fixture.hpp.in +0 -0
  460. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/client.hpp +0 -0
  461. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/base64.hpp +0 -0
  462. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/bytes.hpp +0 -0
  463. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/clock.hpp +0 -0
  464. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/crypto.hpp +0 -0
  465. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/logger.hpp +0 -0
  466. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/result.hpp +0 -0
  467. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/spsc.hpp +0 -0
  468. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/core/uuid.hpp +0 -0
  469. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/crowdy.hpp +0 -0
  470. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/default_origin.hpp +0 -0
  471. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/admin.hpp +0 -0
  472. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/auth.hpp +0 -0
  473. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio.hpp +0 -0
  474. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_agent.hpp +0 -0
  475. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_github.hpp +0 -0
  476. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/discovery.hpp +0 -0
  477. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/domain_base.hpp +0 -0
  478. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/exec.hpp +0 -0
  479. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/game_apps.hpp +0 -0
  480. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/grids.hpp +0 -0
  481. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/groups.hpp +0 -0
  482. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/marketplace.hpp +0 -0
  483. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/player_wallet.hpp +0 -0
  484. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/portal.hpp +0 -0
  485. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/realtime_control.hpp +0 -0
  486. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/server_status.hpp +0 -0
  487. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/types.hpp +0 -0
  488. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/users.hpp +0 -0
  489. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/domains/world_data.hpp +0 -0
  490. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/enums.hpp +0 -0
  491. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/generated/operations.hpp +0 -0
  492. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/async_scope.hpp +0 -0
  493. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/auth_state.hpp +0 -0
  494. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/cancel.hpp +0 -0
  495. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/datacenter_redirect.hpp +0 -0
  496. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/dispatcher.hpp +0 -0
  497. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/errors.hpp +0 -0
  498. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/estate.hpp +0 -0
  499. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/graphql_client.hpp +0 -0
  500. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/http.hpp +0 -0
  501. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/json.hpp +0 -0
  502. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/rediscover.hpp +0 -0
  503. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/subscription_client.hpp +0 -0
  504. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/websocket.hpp +0 -0
  505. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/actions.hpp +0 -0
  506. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/mirror.hpp +0 -0
  507. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/modules.hpp +0 -0
  508. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/realtime.hpp +0 -0
  509. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/runtime.hpp +0 -0
  510. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/social.hpp +0 -0
  511. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/topology.hpp +0 -0
  512. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/kit/wire.hpp +0 -0
  513. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/opus.hpp +0 -0
  514. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/video_frames.hpp +0 -0
  515. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/media/voice_frames.hpp +0 -0
  516. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/adapter.hpp +0 -0
  517. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/player_host.hpp +0 -0
  518. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/schemas.hpp +0 -0
  519. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/types.hpp +0 -0
  520. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/connection.hpp +0 -0
  521. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/session_provider.hpp +0 -0
  522. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/types.hpp +0 -0
  523. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/replication/udp_socket.hpp +0 -0
  524. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/chunk_store.hpp +0 -0
  525. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/codec.hpp +0 -0
  526. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/durable.hpp +0 -0
  527. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/keys.hpp +0 -0
  528. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/stores.hpp +0 -0
  529. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/session/world_session.hpp +0 -0
  530. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/controller.hpp +0 -0
  531. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/diagnostics.hpp +0 -0
  532. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/editor.hpp +0 -0
  533. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github.hpp +0 -0
  534. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github_layout.hpp +0 -0
  535. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/integration.hpp +0 -0
  536. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/layout.hpp +0 -0
  537. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/models.hpp +0 -0
  538. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/studio/runtime.hpp +0 -0
  539. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/codec.hpp +0 -0
  540. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/wire/protocol.hpp +0 -0
  541. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/include/crowdy/world.hpp +0 -0
  542. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/client.cpp +0 -0
  543. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/base64.cpp +0 -0
  544. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/clock.cpp +0 -0
  545. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_default_unavailable.cpp +0 -0
  546. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_openssl.cpp +0 -0
  547. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/crypto_unavailable.cpp +0 -0
  548. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/logger.cpp +0 -0
  549. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/core/uuid.cpp +0 -0
  550. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/domains/exec.cpp +0 -0
  551. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/async_transport.cpp +0 -0
  552. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/auth_state.cpp +0 -0
  553. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/error_extensions.hpp +0 -0
  554. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/errors.cpp +0 -0
  555. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/graphql_client.cpp +0 -0
  556. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/http_curl.cpp +0 -0
  557. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/http_none.cpp +0 -0
  558. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/json.cpp +0 -0
  559. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/subscription_client.cpp +0 -0
  560. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_curl.cpp +0 -0
  561. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/graphql/websocket_none.cpp +0 -0
  562. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/mirror.cpp +0 -0
  563. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/modules.cpp +0 -0
  564. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/protocol.cpp +0 -0
  565. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/kit/topology.cpp +0 -0
  566. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/media/opus.cpp +0 -0
  567. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/player_host/schemas.cpp +0 -0
  568. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/player_host/types.cpp +0 -0
  569. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/connection.cpp +0 -0
  570. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/socket_errors.hpp +0 -0
  571. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/replication/udp_socket.cpp +0 -0
  572. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/session/world_session.cpp +0 -0
  573. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/diagnostics.cpp +0 -0
  574. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/editor.cpp +0 -0
  575. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/src/studio/integration.cpp +0 -0
  576. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/LICENSE +0 -0
  577. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.c +0 -0
  578. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.h +0 -0
  579. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-client-frames.json +0 -0
  580. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-gateway-cases.json +0 -0
  581. {crowdypy-0.12.0.dev1 → crowdypy-0.14.0.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/voice-frames.json +0 -0
@@ -142,7 +142,9 @@ Merging a PR from the command line: `gh pr merge` fails its preflight on this or
142
142
 
143
143
  `src/crowdypy/kit/` is the client half of `ckx_sdk::kit`, ported from CrowdyJS `src/kit/` (the
144
144
  parity gate reads `src/kit/modules/` too since 0.12.0): one `KitRuntime` per kit, mirrors
145
- (`mirror.py`), the typed modules (`modules/`), `topology.py` and `realtime.py`. It is async source
145
+ (`mirror.py`), the typed modules (`modules/`, the genre starters' since 0.13.0; a keyword name
146
+ takes a trailing underscore, `pass_`, which the parity gate's `norm()` matches), `topology.py`
147
+ and `realtime.py`. It is async source
146
148
  like the rest of the client, so `scripts/unasync.py` generates the blocking kit, and it may use no
147
149
  asyncio beyond `asyncio.sleep`. **A push or reconnect handler never waits on a call.** The
148
150
  blocking `ExecConnection` runs them on its reader thread, so a call made there would wait on a
@@ -3,6 +3,47 @@
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
+
25
+ ## 0.13.0
26
+
27
+ CrowdyJS 18.12.0 and CrowdyCPP 0.65.0. Additive: a kit module per ck-exec genre starter
28
+ (ckx-sdk 0.11.0, which the tier's compute toolchain must carry; `kit.topology` lists, builds and
29
+ deploys them like the others). Against an app that does not run one, its calls are refused with
30
+ `NotFound` (the app has no such node type).
31
+
32
+ - **The modules.** `kit.leaderboards.board(name)` (`view` mirrored, `top(limit=, offset=)`,
33
+ `around(player=, radius=)`, `me`, `season`; `submit`, `configure`, `roll` for developers),
34
+ `kit.tables.table(key)` (`table` mirrored, `hand` private, `join`, `start`, `play(card, suit)`,
35
+ `draw`, `pass_`), `kit.tactics.battle(key)` (`move(x, z)`, `attack`, `end_turn`, `my_units`),
36
+ `kit.encounters.encounter(key)` (`build(x, z)`, `hit`), `kit.minigames.duel(key)` (`throw`,
37
+ `rematch`), `kit.instances.run(key)` (`open(seed=, party=)`, `invite`, `join`, `enter`,
38
+ `descend`, `abandon`), `kit.arenas.arena(key)` (`join(hero_class)`, `start`, `move(x, z)`,
39
+ `cast(ability, x, z)`), `kit.racing.race(key)` (`pos`, `ghost`) and `kit.racing.ball(key)`
40
+ (`claim`, `pass_`, `shoot`), `kit.territory.map(key)` (`join(faction)`, `reset`) and
41
+ `kit.territory.zone(key)`. `pass` is a Python keyword, so it is `pass_`.
42
+ - **Node types** a game deployed under other names go in `nodes=`: `leaderboard`, `deck`,
43
+ `tactics`, `director`, `minigame`, `instance`, `arena`, `race`, `ball`, `territory`, `zone`.
44
+ - **Positions the hub keeps.** `move` / `pos` answer `[x, z]`, the position the hub's movement
45
+ warden kept, and go without an action id: the next report replaces a lost one.
46
+
6
47
  ## 0.12.0
7
48
 
8
49
  CrowdyJS 18.11.0 and CrowdyCPP 0.64.0. Additive. The kit's typed clients drive the ck-exec
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crowdypy
3
- Version: 0.12.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,20 @@ 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
+
61
+ **v0.13.0: the genre starters (CrowdyJS 18.12.0, CrowdyCPP 0.65.0).** Nine more kit modules,
62
+ one per ck-exec genre starter: `kit.leaderboards.board(name)`, `kit.tables.table(key)` (the
63
+ caller's hand as private state), `kit.tactics.battle(key)`, `kit.encounters.encounter(key)`,
64
+ `kit.minigames.duel(key)`, `kit.instances.run(key)`, `kit.arenas.arena(key)`,
65
+ `kit.racing.race(key)` / `ball(key)` and `kit.territory.map(key)` / `zone(key)`, in both clients.
66
+ They need a compute toolchain with ckx-sdk 0.11.0 on the tier.
67
+
54
68
  **v0.12.0: the Game Kit on ck-exec (CrowdyJS 18.11.0, CrowdyCPP 0.64.0).** `client.kit(app_id)`
55
69
  gains typed clients for the ck-exec starter hubs, the client half of the game kit whose server
56
70
  half is `ckx_sdk::kit`: `kit.world` (conditions and resource nodes mirrored, harvests, liveops for
@@ -11,6 +11,20 @@ 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
+
21
+ **v0.13.0: the genre starters (CrowdyJS 18.12.0, CrowdyCPP 0.65.0).** Nine more kit modules,
22
+ one per ck-exec genre starter: `kit.leaderboards.board(name)`, `kit.tables.table(key)` (the
23
+ caller's hand as private state), `kit.tactics.battle(key)`, `kit.encounters.encounter(key)`,
24
+ `kit.minigames.duel(key)`, `kit.instances.run(key)`, `kit.arenas.arena(key)`,
25
+ `kit.racing.race(key)` / `ball(key)` and `kit.territory.map(key)` / `zone(key)`, in both clients.
26
+ They need a compute toolchain with ckx-sdk 0.11.0 on the tier.
27
+
14
28
  **v0.12.0: the Game Kit on ck-exec (CrowdyJS 18.11.0, CrowdyCPP 0.64.0).** `client.kit(app_id)`
15
29
  gains typed clients for the ck-exec starter hubs, the client half of the game kit whose server
16
30
  half is `ckx_sdk::kit`: `kit.world` (conditions and resource nodes mirrored, harvests, liveops for
@@ -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.12.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.11.0` at `5167437788a8ea683d2fde6d3bafa2639feaa45e`
8
- - CrowdyCPP (native core): `0.64.0` at `78ac8396d4bd0b3bfdd271c867f480e471488095`
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: 1146
14
+ - Covered: 1352
15
15
  - Portable gap: 0
16
16
  - Native equivalent: 44
17
17
  - Browser exclusion: 113
@@ -448,21 +448,27 @@ 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 |
454
455
  | `AppAccessAPI -> AppAccessAPI` | covered |
455
456
  | `AppsAPI -> AppsAPI` | covered |
457
+ | `ArenaMatch -> ArenaMatch` | covered |
458
+ | `ArenasKit -> ArenasKit` | covered |
456
459
  | `AuthAPI -> AuthAPI` | covered |
457
460
  | `AvatarStateStore -> AvatarStateStore` | covered |
458
461
  | `AvatarsAPI -> AvatarsAPI` | covered |
462
+ | `BallMatch -> BallMatch` | covered |
459
463
  | `BillingAPI -> BillingAPI` | covered |
460
464
  | `BrowserSessionPkceStore -> (none)` | browser exclusion — sessionStorage-backed PKCE verifier store; a Python application keeps verifiers in MemoryPkceStore or its own PkceStore |
465
+ | `CardTable -> CardTable` | covered |
461
466
  | `ChannelInbox -> ChannelInbox` | covered |
462
467
  | `ChannelsAPI -> ChannelsAPI` | covered |
463
468
  | `ChunkStore -> ChunkStore` | covered |
464
469
  | `ChunksAPI -> ChunksAPI` | covered |
465
470
  | `CollectionMirror -> CollectionMirror` | covered |
471
+ | `CraftingKit -> CraftingKit` | covered |
466
472
  | `CrowdyClient -> AsyncCrowdyClient` | covered |
467
473
  | `CrowdyStudioAPI -> CrowdyStudioAPI` | covered |
468
474
  | `CrowdyStudioController -> CrowdyStudioController` | covered |
@@ -472,8 +478,11 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
472
478
  | `CrowdyStudioGitHubTransport -> CrowdyStudioGitHubTransport` | covered |
473
479
  | `CrowdyStudioTextHud -> (none)` | browser exclusion — HUD layer renders text-only player presentation into game-owned DOM |
474
480
  | `DiscoveryDomain -> DiscoveryDomain` | covered |
481
+ | `Duel -> Duel` | covered |
475
482
  | `EmbeddedHost -> (none)` | browser exclusion — iframe/postMessage bridge to the first-party shell page; there is no frame around a Python client |
476
483
  | `EmotesKit -> EmotesKit` | covered |
484
+ | `Encounter -> Encounter` | covered |
485
+ | `EncountersKit -> EncountersKit` | covered |
477
486
  | `ErrorStore -> ErrorStore` | covered |
478
487
  | `EventRouter -> EventRouter` | covered |
479
488
  | `ExecAPI -> ExecAPI` | covered |
@@ -488,22 +497,38 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
488
497
  | `HostTracker -> HostTracker` | covered |
489
498
  | `HostingAPI -> (none)` | browser exclusion — wrapper over the Crowdy Games hosting roots, which publish browser bundles; no Python client publishes one (CrowdyCPP classifies it the same way) |
490
499
  | `InputLogAPI -> InputLogAPI` | covered |
500
+ | `InstanceRun -> InstanceRun` | covered |
501
+ | `InstancesKit -> InstancesKit` | covered |
502
+ | `InventoryKit -> InventoryKit` | covered |
491
503
  | `KitError -> KitError` | covered |
492
504
  | `KitRuntime -> KitRuntime` | covered |
493
505
  | `KitTopology -> KitTopology` | covered |
506
+ | `LeaderboardHandle -> LeaderboardHandle` | covered |
507
+ | `LeaderboardsKit -> LeaderboardsKit` | covered |
494
508
  | `LocalActorStore -> LocalActorStore` | covered |
509
+ | `LootKit -> LootKit` | covered |
510
+ | `MarketCore -> MarketCore` | covered |
511
+ | `MarketHandle -> MarketHandle` | covered |
495
512
  | `MarketplaceAPI -> MarketplaceAPI` | covered |
513
+ | `MarketsKit -> MarketsKit` | covered |
496
514
  | `MatchQueue -> MatchQueue` | covered |
497
515
  | `MatchmakingKit -> MatchmakingKit` | covered |
516
+ | `MinigamesKit -> MinigamesKit` | covered |
498
517
  | `NpcArea -> NpcArea` | covered |
499
518
  | `NpcsKit -> NpcsKit` | covered |
500
519
  | `OrganizationsAPI -> OrganizationsAPI` | covered |
501
520
  | `PaymentsAPI -> PaymentsAPI` | covered |
502
521
  | `PlatformAPI -> PlatformAPI` | covered |
522
+ | `PlayerKit -> PlayerKit` | covered |
503
523
  | `PlayerWalletAPI -> PlayerWalletAPI` | covered |
504
524
  | `PortalAPI -> PortalAPI` | covered |
505
525
  | `PrivateState -> PrivateState` | covered |
526
+ | `ProductionKit -> ProductionKit` | covered |
527
+ | `ProgressionKit -> ProgressionKit` | covered |
528
+ | `QuestsKit -> QuestsKit` | covered |
506
529
  | `QuotasAPI -> QuotasAPI` | covered |
530
+ | `Race -> Race` | covered |
531
+ | `RacingKit -> RacingKit` | covered |
507
532
  | `RemoteActorLane -> RemoteActorLane` | covered |
508
533
  | `RemoteActorStore -> RemoteActorStore` | covered |
509
534
  | `SaveStateStore -> SaveStateStore` | covered |
@@ -511,19 +536,29 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
511
536
  | `SessionsKit -> SessionsKit` | covered |
512
537
  | `ShardKit -> ShardKit` | covered |
513
538
  | `SharedEnvironmentAPI -> SharedEnvironmentAPI` | covered |
539
+ | `ShopHandle -> ShopHandle` | covered |
540
+ | `ShopsKit -> ShopsKit` | covered |
514
541
  | `SocialKit -> SocialKit` | covered |
515
542
  | `SpectateKit -> SpectateKit` | covered |
516
543
  | `SpectatorHeartbeat -> SpectatorHeartbeat` | covered |
517
544
  | `StateAPI -> StateAPI` | covered |
518
545
  | `StudioLayoutController -> StudioLayoutController` | covered |
546
+ | `TablesKit -> TablesKit` | covered |
547
+ | `TacticsBattle -> TacticsBattle` | covered |
548
+ | `TacticsKit -> TacticsKit` | covered |
519
549
  | `TeamsAPI -> TeamsAPI` | covered |
520
550
  | `TeleportAPI -> TeleportAPI` | covered |
551
+ | `TerritoryKit -> TerritoryKit` | covered |
552
+ | `TerritoryMap -> TerritoryMap` | covered |
553
+ | `TradeDesk -> TradeDesk` | covered |
554
+ | `TradesKit -> TradesKit` | covered |
521
555
  | `UdpAPI -> UdpAPI` | covered |
522
556
  | `UsageAPI -> UsageAPI` | covered |
523
557
  | `UsersAPI -> UsersAPI` | covered |
524
558
  | `VfsLimitError -> (none)` | browser exclusion — the bounded Monaco / browser-language-worker document workspace |
525
559
  | `VirtualFileSystem -> (none)` | browser exclusion — the bounded Monaco / browser-language-worker document workspace |
526
560
  | `VoxelsAPI -> VoxelsAPI` | covered |
561
+ | `WalletKit -> WalletKit` | covered |
527
562
  | `WorkerLanguageClient -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
528
563
  | `WorkerMessageReader -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
529
564
  | `WorkerMessageWriter -> (none)` | browser exclusion — binds vscode-jsonrpc to browser Web Worker messaging |
@@ -531,11 +566,15 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
531
566
  | `WorldKit -> WorldKit` | covered |
532
567
  | `WorldSessionCore -> WorldSessionCore` | covered |
533
568
  | `WritableKitStore -> WritableKitStore` | covered |
569
+ | `ZoneMatch -> ZoneMatch` | covered |
534
570
 
535
571
  ## Methods
536
572
 
537
573
  | CrowdyJS method | Status |
538
574
  |---|---|
575
+ | `AchievementsKit.list` | covered |
576
+ | `AchievementsKit.onUnlock` | covered |
577
+ | `AchievementsKit.watch` | covered |
539
578
  | `ActorClient.join` | covered |
540
579
  | `ActorClient.sendEvent` | covered |
541
580
  | `ActorClient.sendState` | covered |
@@ -592,6 +631,14 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
592
631
  | `AppsAPI.routeFor` | covered |
593
632
  | `AppsAPI.setCodeAdmissionMode` | covered |
594
633
  | `AppsAPI.update` | covered |
634
+ | `ArenaMatch.cast` | covered |
635
+ | `ArenaMatch.join` | covered |
636
+ | `ArenaMatch.leave` | covered |
637
+ | `ArenaMatch.move` | covered |
638
+ | `ArenaMatch.start` | covered |
639
+ | `ArenaMatch.unwatch` | covered |
640
+ | `ArenaMatch.watch` | covered |
641
+ | `ArenasKit.arena` | covered |
595
642
  | `AuthAPI.availableLoginProviders` | covered |
596
643
  | `AuthAPI.changePassword` | covered |
597
644
  | `AuthAPI.checkAuthMethod` | covered |
@@ -630,12 +677,28 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
630
677
  | `AvatarsAPI.update` | covered |
631
678
  | `AvatarsAPI.updateAppState` | covered |
632
679
  | `AvatarsAPI.updateState` | covered |
680
+ | `BallMatch.claim` | covered |
681
+ | `BallMatch.join` | covered |
682
+ | `BallMatch.pass` | covered |
683
+ | `BallMatch.pos` | covered |
684
+ | `BallMatch.shoot` | covered |
685
+ | `BallMatch.start` | covered |
686
+ | `BallMatch.unwatch` | covered |
687
+ | `BallMatch.watch` | covered |
633
688
  | `BillingAPI.appBudget` | covered |
634
689
  | `BillingAPI.appBudgets` | covered |
635
690
  | `BillingAPI.setAppBudget` | covered |
636
691
  | `BillingAPI.walletBalance` | covered |
637
692
  | `BillingAPI.walletTransactions` | covered |
638
693
  | `BillingAPI.walletTransactionsConnection` | covered |
694
+ | `CardTable.draw` | covered |
695
+ | `CardTable.join` | covered |
696
+ | `CardTable.leave` | covered |
697
+ | `CardTable.pass` | covered |
698
+ | `CardTable.play` | covered |
699
+ | `CardTable.start` | covered |
700
+ | `CardTable.unwatch` | covered |
701
+ | `CardTable.watch` | covered |
639
702
  | `ChannelInbox.channels` | covered |
640
703
  | `ChannelInbox.clear` | covered |
641
704
  | `ChannelInbox.decodeFailures` | covered |
@@ -687,6 +750,8 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
687
750
  | `ChunksAPI.voxelList` | covered |
688
751
  | `CollectionMirror.list` | covered |
689
752
  | `CollectionMirror.member` | covered |
753
+ | `CraftingKit.craft` | covered |
754
+ | `CraftingKit.recipes` | covered |
690
755
  | `CrowdyClient.close` | native equivalent — AsyncCrowdyClient.aclose(), the asyncio spelling; the blocking CrowdyClient has close() |
691
756
  | `CrowdyClient.getToken` | covered |
692
757
  | `CrowdyClient.graphqlEndpoint` | covered |
@@ -765,8 +830,21 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
765
830
  | `CrowdyStudioGitHubTransport.unbind` | covered |
766
831
  | `DiscoveryDomain.app` | covered |
767
832
  | `DiscoveryDomain.apps` | covered |
833
+ | `Duel.join` | covered |
834
+ | `Duel.leave` | covered |
835
+ | `Duel.rematch` | covered |
836
+ | `Duel.throw` | covered |
837
+ | `Duel.unwatch` | covered |
838
+ | `Duel.watch` | covered |
768
839
  | `EmotesKit.parse` | covered |
769
840
  | `EmotesKit.send` | covered |
841
+ | `Encounter.build` | covered |
842
+ | `Encounter.hit` | covered |
843
+ | `Encounter.join` | covered |
844
+ | `Encounter.start` | covered |
845
+ | `Encounter.unwatch` | covered |
846
+ | `Encounter.watch` | covered |
847
+ | `EncountersKit.encounter` | covered |
770
848
  | `ErrorStore.clear` | covered |
771
849
  | `ErrorStore.last` | covered |
772
850
  | `ErrorStore.lastFor` | covered |
@@ -848,14 +926,35 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
848
926
  | `GameAppsAPI.setPermissionLimits` | covered |
849
927
  | `GameAppsAPI.transferOwnership` | covered |
850
928
  | `GameAppsAPI.userPermissions` | covered |
929
+ | `GameKitClient.achievements` | covered |
930
+ | `GameKitClient.arenas` | covered |
851
931
  | `GameKitClient.close` | covered |
932
+ | `GameKitClient.crafting` | covered |
852
933
  | `GameKitClient.emotes` | covered |
934
+ | `GameKitClient.encounters` | covered |
935
+ | `GameKitClient.instances` | covered |
936
+ | `GameKitClient.inventory` | covered |
937
+ | `GameKitClient.leaderboards` | covered |
938
+ | `GameKitClient.loot` | covered |
939
+ | `GameKitClient.market` | covered |
853
940
  | `GameKitClient.matchmaking` | covered |
941
+ | `GameKitClient.minigames` | covered |
854
942
  | `GameKitClient.npcs` | covered |
943
+ | `GameKitClient.player` | covered |
944
+ | `GameKitClient.production` | covered |
945
+ | `GameKitClient.progression` | covered |
946
+ | `GameKitClient.quests` | covered |
947
+ | `GameKitClient.racing` | covered |
855
948
  | `GameKitClient.sessions` | covered |
856
949
  | `GameKitClient.shards` | covered |
950
+ | `GameKitClient.shops` | covered |
857
951
  | `GameKitClient.spectate` | covered |
952
+ | `GameKitClient.tables` | covered |
953
+ | `GameKitClient.tactics` | covered |
954
+ | `GameKitClient.territory` | covered |
858
955
  | `GameKitClient.topology` | covered |
956
+ | `GameKitClient.trades` | covered |
957
+ | `GameKitClient.wallet` | covered |
859
958
  | `GameKitClient.world` | covered |
860
959
  | `GameSessionHandle.act` | covered |
861
960
  | `GameSessionHandle.configure` | covered |
@@ -899,6 +998,20 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
899
998
  | `HostTracker.onHostChanged` | covered |
900
999
  | `InputLogAPI.messages` | covered |
901
1000
  | `InputLogAPI.sessions` | covered |
1001
+ | `InstanceRun.abandon` | covered |
1002
+ | `InstanceRun.descend` | covered |
1003
+ | `InstanceRun.enter` | covered |
1004
+ | `InstanceRun.invite` | covered |
1005
+ | `InstanceRun.join` | covered |
1006
+ | `InstanceRun.open` | covered |
1007
+ | `InstanceRun.unwatch` | covered |
1008
+ | `InstanceRun.watch` | covered |
1009
+ | `InstancesKit.run` | covered |
1010
+ | `InventoryKit.count` | covered |
1011
+ | `InventoryKit.discard` | covered |
1012
+ | `InventoryKit.items` | covered |
1013
+ | `InventoryKit.takeMail` | covered |
1014
+ | `InventoryKit.watch` | covered |
902
1015
  | `KitError.from` | native equivalent — KitError.from_error(error): `from` is a Python keyword |
903
1016
  | `KitRuntime.call` | covered |
904
1017
  | `KitRuntime.close` | covered |
@@ -912,6 +1025,16 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
912
1025
  | `KitTopology.pack` | covered |
913
1026
  | `KitTopology.plan` | covered |
914
1027
  | `KitTopology.types` | covered |
1028
+ | `LeaderboardHandle.around` | covered |
1029
+ | `LeaderboardHandle.configure` | covered |
1030
+ | `LeaderboardHandle.me` | covered |
1031
+ | `LeaderboardHandle.roll` | covered |
1032
+ | `LeaderboardHandle.season` | covered |
1033
+ | `LeaderboardHandle.submit` | covered |
1034
+ | `LeaderboardHandle.top` | covered |
1035
+ | `LeaderboardHandle.unwatch` | covered |
1036
+ | `LeaderboardHandle.watch` | covered |
1037
+ | `LeaderboardsKit.board` | covered |
915
1038
  | `LocalActorStore.chunk` | covered |
916
1039
  | `LocalActorStore.join` | covered |
917
1040
  | `LocalActorStore.lastAck` | covered |
@@ -924,6 +1047,16 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
924
1047
  | `LocalActorStore.setState` | covered |
925
1048
  | `LocalActorStore.state` | covered |
926
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 |
927
1060
  | `MarketplaceAPI.admissionQueue` | covered |
928
1061
  | `MarketplaceAPI.appAcquisitions` | covered |
929
1062
  | `MarketplaceAPI.appListings` | covered |
@@ -937,6 +1070,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
937
1070
  | `MarketplaceAPI.setGridClaimPolicy` | covered |
938
1071
  | `MarketplaceAPI.setListingStatus` | covered |
939
1072
  | `MarketplaceAPI.transferListing` | covered |
1073
+ | `MarketsKit.at` | covered |
940
1074
  | `MatchQueue.accept` | covered |
941
1075
  | `MatchQueue.configure` | covered |
942
1076
  | `MatchQueue.decline` | covered |
@@ -948,6 +1082,7 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
948
1082
  | `MatchQueue.unwatch` | covered |
949
1083
  | `MatchQueue.watch` | covered |
950
1084
  | `MatchmakingKit.queue` | covered |
1085
+ | `MinigamesKit.duel` | covered |
951
1086
  | `NpcArea.adopt` | covered |
952
1087
  | `NpcArea.attack` | covered |
953
1088
  | `NpcArea.dismiss` | covered |
@@ -987,6 +1122,18 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
987
1122
  | `PaymentsAPI.mine` | covered |
988
1123
  | `PaymentsAPI.mineConnection` | covered |
989
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 |
990
1137
  | `PlayerWalletAPI.appMarkupAccrued` | covered |
991
1138
  | `PlayerWalletAPI.appMarkupAccruedMicrousd` | covered |
992
1139
  | `PlayerWalletAPI.appPlayerUsage` | covered |
@@ -1021,11 +1168,32 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1021
1168
  | `PrivateState.start` | covered |
1022
1169
  | `PrivateState.stop` | covered |
1023
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 |
1024
1183
  | `QuotasAPI.effective` | covered |
1025
1184
  | `QuotasAPI.forApp` | covered |
1026
1185
  | `QuotasAPI.forOrg` | covered |
1027
1186
  | `QuotasAPI.remove` | covered |
1028
1187
  | `QuotasAPI.set` | covered |
1188
+ | `Race.ghost` | covered |
1189
+ | `Race.join` | covered |
1190
+ | `Race.leave` | covered |
1191
+ | `Race.pos` | covered |
1192
+ | `Race.start` | covered |
1193
+ | `Race.unwatch` | covered |
1194
+ | `Race.watch` | covered |
1195
+ | `RacingKit.ball` | covered |
1196
+ | `RacingKit.race` | covered |
1029
1197
  | `RemoteActorLane.apply` | covered |
1030
1198
  | `RemoteActorLane.clear` | covered |
1031
1199
  | `RemoteActorLane.count` | covered |
@@ -1077,6 +1245,13 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1077
1245
  | `SharedEnvironmentAPI.setReservedThroughput` | covered |
1078
1246
  | `SharedEnvironmentAPI.setSpendCaps` | covered |
1079
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 |
1080
1255
  | `SocialKit.chat.join` | covered |
1081
1256
  | `SocialKit.chat.onMessage` | covered |
1082
1257
  | `SocialKit.chat.room` | covered |
@@ -1109,6 +1284,16 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1109
1284
  | `StudioLayoutController.setVisible` | covered |
1110
1285
  | `StudioLayoutController.subscribe` | covered |
1111
1286
  | `StudioLayoutController.toggle` | covered |
1287
+ | `TablesKit.table` | covered |
1288
+ | `TacticsBattle.attack` | covered |
1289
+ | `TacticsBattle.endTurn` | covered |
1290
+ | `TacticsBattle.join` | covered |
1291
+ | `TacticsBattle.move` | covered |
1292
+ | `TacticsBattle.myUnits` | covered |
1293
+ | `TacticsBattle.start` | covered |
1294
+ | `TacticsBattle.unwatch` | covered |
1295
+ | `TacticsBattle.watch` | covered |
1296
+ | `TacticsKit.battle` | covered |
1112
1297
  | `TeamsAPI.addMember` | covered |
1113
1298
  | `TeamsAPI.ban` | covered |
1114
1299
  | `TeamsAPI.create` | covered |
@@ -1131,6 +1316,20 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1131
1316
  | `TeamsAPI.update` | covered |
1132
1317
  | `TeamsAPI.updateRole` | covered |
1133
1318
  | `TeleportAPI.request` | covered |
1319
+ | `TerritoryKit.map` | covered |
1320
+ | `TerritoryKit.zone` | covered |
1321
+ | `TerritoryMap.join` | covered |
1322
+ | `TerritoryMap.reset` | covered |
1323
+ | `TerritoryMap.unwatch` | covered |
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 |
1134
1333
  | `UdpAPI.connect` | covered |
1135
1334
  | `UdpAPI.connectionStatus` | covered |
1136
1335
  | `UdpAPI.disconnect` | covered |
@@ -1170,6 +1369,9 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1170
1369
  | `VoxelsAPI.listByDistance` | covered |
1171
1370
  | `VoxelsAPI.rollback` | covered |
1172
1371
  | `VoxelsAPI.update` | covered |
1372
+ | `WalletKit.balance` | covered |
1373
+ | `WalletKit.balances` | covered |
1374
+ | `WalletKit.watch` | covered |
1173
1375
  | `WorldClient.actor` | covered |
1174
1376
  | `WorldClient.subscribe` | covered |
1175
1377
  | `WorldKit.cancel` | covered |
@@ -1184,6 +1386,10 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
1184
1386
  | `WritableKitStore.get` | covered |
1185
1387
  | `WritableKitStore.set` | covered |
1186
1388
  | `WritableKitStore.subscribe` | covered |
1389
+ | `ZoneMatch.join` | covered |
1390
+ | `ZoneMatch.start` | covered |
1391
+ | `ZoneMatch.unwatch` | covered |
1392
+ | `ZoneMatch.watch` | covered |
1187
1393
 
1188
1394
  ## Package exports
1189
1395
 
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
6
  name = "crowdypy"
7
- version = "0.12.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.11.0"
123
- commit = "5167437788a8ea683d2fde6d3bafa2639feaa45e"
122
+ version = "18.13.0"
123
+ commit = "7aeee709ad661c836a045f2d396c9a867f1d278a"
124
124
 
125
125
  [tool.crowdypy.crowdycpp]
126
- version = "0.64.0"
127
- tag = "dev/v0.64.0"
128
- commit = "78ac8396d4bd0b3bfdd271c867f480e471488095"
129
- tree-sha256 = "db5facc1d3ad24f049623916e71a1020d9f6cdb79bc8fa9df091f926f67aa053"
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 = "3cdc1b7196de4a006ab595401e7ff09b6549a79e346d43356e2162653e59c43e"
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: a world tick (the root hub: clock, weather, resource nodes, liveops events), a matchmaker, game sessions (lobby, host, turns, scores) and an NPC and mob engine, as ckx-sdk crates to pass to `execBuild` and a manifest for `execDeploy`. 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."""
@@ -9441,7 +9443,7 @@ type Mutation {
9441
9443
  """
9442
9444
  updateVoxel(input: UpdateVoxelInput!): Voxel! @requiresPermission(scope: "runtime", permission: "update_voxel_data", scopeArg: "input.appId")
9443
9445
  """
9444
- Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). A reverted voxel’s edit-log row takes the earlier edit’s type, state and author and the ROLLBACK’s time as its createdAt, so a client reading edits `since` its last sync sees the revert. Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass).
9446
+ Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). A reverted voxel’s edit-log row takes the earlier edit’s type, state and author and the ROLLBACK’s time as its createdAt, so a client reading edits `since` its last sync sees the revert. When the app’s wilderness is closed (`wildernessOpen` false), an applied rollback that would write any chunk of closed, unclaimed wilderness is refused (403) before it writes anything; a dry run is not. Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass).
9445
9447
  """
9446
9448
  rollbackVoxelUpdates(input: RollbackVoxelUpdatesInput!): [RollbackVoxelEventResult!]! @requiresPermission(scope: "app", permission: "manage_apps", scopeArg: "input.appId")
9447
9449
  """
@@ -1,6 +1,6 @@
1
1
  """GENERATED by scripts/codegen.py from schema.gql. Do not edit.
2
2
 
3
- schema.gql sha256: 3cdc1b7196de4a006ab595401e7ff09b6549a79e346d43356e2162653e59c43e
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: 3cdc1b7196de4a006ab595401e7ff09b6549a79e346d43356e2162653e59c43e
7
+ schema.gql sha256: b8d487684433c99556979ed20283a9abc6b16bb02b9f6508f07600a662265ca0
8
8
  """
9
9
 
10
10
  from __future__ import annotations