com.wallstop-studios.dxmessaging 2.1.3 → 2.1.5

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 (1222) hide show
  1. package/.artifacts/SourceGenerators.Tests/TestResults/0e800bba-2376-4062-bb19-cf916d3083a1/coverage.cobertura.xml +2624 -0
  2. package/.artifacts/SourceGenerators.Tests/TestResults/260ab294-e640-4674-9ae9-29b5344c0540/coverage.cobertura.xml +2624 -0
  3. package/.artifacts/SourceGenerators.Tests/TestResults/31c02772-7d85-4466-a2c4-93742725076e/coverage.cobertura.xml +2624 -0
  4. package/.artifacts/SourceGenerators.Tests/TestResults/ca4d2ef2-0c53-49dc-91b5-039938571ed8/coverage.cobertura.xml +2624 -0
  5. package/.artifacts/SourceGenerators.Tests/TestResults/f6cadd7e-1bf5-44b0-9351-47426600fc69/coverage.cobertura.xml +2624 -0
  6. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  7. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  8. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.ApplicationInsights.dll +0 -0
  9. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  10. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.CodeAnalysis.dll +0 -0
  11. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
  12. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
  13. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
  14. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
  15. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
  16. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
  17. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
  18. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
  19. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
  20. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
  21. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Platform.dll +0 -0
  22. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
  23. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
  24. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
  25. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/NUnit3.TestAdapter.dll +0 -0
  26. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll +0 -0
  27. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +872 -0
  28. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  29. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +13 -0
  30. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
  31. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  32. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
  33. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  34. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  35. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  36. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  37. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  38. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  39. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  40. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
  41. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  42. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  43. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  44. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
  45. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  46. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  47. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  48. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  49. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  50. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  51. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  52. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
  53. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  54. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  55. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  56. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
  57. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  58. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  59. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  60. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  61. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  62. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  63. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  64. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
  65. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  66. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  67. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  68. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
  69. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  70. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  71. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  72. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  73. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  74. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  75. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  76. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
  77. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  78. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  79. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  80. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
  81. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  82. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  83. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  84. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  85. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  86. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  87. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  88. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
  89. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  90. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  91. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  92. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
  93. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  94. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  95. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  96. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  97. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  98. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  99. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  100. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
  101. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  102. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  103. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  104. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
  105. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  106. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  107. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  108. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  109. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  110. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  111. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  112. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
  113. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  114. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  115. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.api.dll +0 -0
  116. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.core.dll +0 -0
  117. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.dll +0 -0
  118. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.framework.dll +0 -0
  119. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.framework.legacy.dll +0 -0
  120. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  121. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
  122. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  123. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  124. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  125. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  126. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  127. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  128. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  129. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
  130. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  131. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  132. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  133. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
  134. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  135. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  136. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  137. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  138. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  139. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  140. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  141. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
  142. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  143. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  144. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  145. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
  146. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  147. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  148. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  149. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  150. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  151. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  152. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  153. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
  154. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  155. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  156. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testcentric.engine.metadata.dll +0 -0
  157. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testhost.dll +0 -0
  158. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testhost.exe +0 -0
  159. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  160. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
  161. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  162. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  163. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  164. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  165. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  166. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  167. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  168. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
  169. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  170. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  171. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  172. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
  173. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  174. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  175. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  176. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  177. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  178. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  179. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  180. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
  181. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  182. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  183. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  184. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
  185. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  186. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  187. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  188. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  189. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  190. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  191. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  192. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
  193. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  194. package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  195. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  196. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  197. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.ApplicationInsights.dll +0 -0
  198. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  199. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.CodeAnalysis.dll +0 -0
  200. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Extensions.DependencyModel.dll +0 -0
  201. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
  202. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
  203. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
  204. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
  205. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
  206. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
  207. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
  208. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
  209. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
  210. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
  211. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Platform.dll +0 -0
  212. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
  213. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
  214. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
  215. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/NUnit3.TestAdapter.dll +0 -0
  216. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Newtonsoft.Json.dll +0 -0
  217. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +817 -0
  218. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  219. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +14 -0
  220. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
  221. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  222. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
  223. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  224. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  225. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  226. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  227. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  228. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  229. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  230. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
  231. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  232. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  233. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  234. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
  235. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  236. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  237. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  238. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  239. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  240. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  241. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  242. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
  243. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  244. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  245. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  246. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
  247. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  248. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  249. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  250. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  251. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  252. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  253. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  254. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
  255. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  256. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  257. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  258. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
  259. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  260. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  261. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  262. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  263. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  264. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  265. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  266. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
  267. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  268. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  269. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  270. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
  271. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  272. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  273. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  274. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  275. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  276. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  277. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  278. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
  279. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  280. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  281. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  282. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
  283. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  284. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  285. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  286. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  287. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  288. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  289. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  290. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
  291. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  292. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  293. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  294. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
  295. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  296. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  297. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  298. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  299. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  300. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  301. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  302. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
  303. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  304. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  305. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.api.dll +0 -0
  306. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.core.dll +0 -0
  307. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.dll +0 -0
  308. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.framework.dll +0 -0
  309. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.framework.legacy.dll +0 -0
  310. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  311. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
  312. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  313. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  314. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  315. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  316. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  317. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  318. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  319. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
  320. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  321. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  322. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  323. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
  324. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  325. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  326. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  327. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  328. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  329. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  330. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  331. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
  332. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  333. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  334. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  335. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
  336. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  337. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  338. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  339. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  340. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  341. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  342. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  343. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
  344. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  345. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  346. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testcentric.engine.metadata.dll +0 -0
  347. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testhost.dll +0 -0
  348. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testhost.exe +0 -0
  349. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  350. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
  351. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  352. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  353. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  354. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  355. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  356. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  357. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  358. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
  359. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  360. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  361. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  362. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
  363. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  364. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  365. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  366. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  367. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  368. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  369. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  370. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
  371. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  372. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  373. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  374. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
  375. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  376. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  377. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  378. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  379. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  380. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  381. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  382. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
  383. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  384. package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  385. package/.artifacts/SourceGenerators.Tests/bin/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  386. package/.artifacts/SourceGenerators.Tests/bin/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
  387. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.ApplicationInsights.dll +0 -0
  388. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  389. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.CodeAnalysis.dll +0 -0
  390. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Extensions.DependencyModel.dll +0 -0
  391. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
  392. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
  393. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
  394. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
  395. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
  396. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
  397. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
  398. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
  399. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
  400. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
  401. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Platform.dll +0 -0
  402. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
  403. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
  404. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
  405. package/.artifacts/SourceGenerators.Tests/bin/net9.0/NUnit3.TestAdapter.dll +0 -0
  406. package/.artifacts/SourceGenerators.Tests/bin/net9.0/Newtonsoft.Json.dll +0 -0
  407. package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +872 -0
  408. package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  409. package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +13 -0
  410. package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
  411. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  412. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
  413. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  414. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  415. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  416. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  417. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  418. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  419. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  420. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
  421. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  422. package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  423. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  424. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
  425. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  426. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  427. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  428. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  429. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  430. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  431. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  432. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
  433. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  434. package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  435. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  436. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
  437. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  438. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  439. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  440. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  441. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  442. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  443. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  444. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
  445. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  446. package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  447. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  448. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
  449. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  450. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  451. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  452. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  453. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  454. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  455. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  456. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
  457. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  458. package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  459. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  460. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
  461. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  462. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  463. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  464. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  465. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  466. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  467. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  468. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
  469. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  470. package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  471. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  472. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
  473. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  474. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  475. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  476. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  477. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  478. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  479. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  480. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
  481. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  482. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  483. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  484. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
  485. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  486. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  487. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  488. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  489. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  490. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  491. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  492. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
  493. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  494. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  495. package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.api.dll +0 -0
  496. package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.core.dll +0 -0
  497. package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.dll +0 -0
  498. package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.framework.dll +0 -0
  499. package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.framework.legacy.dll +0 -0
  500. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  501. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
  502. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  503. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  504. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  505. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  506. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  507. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  508. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  509. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
  510. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  511. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  512. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  513. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
  514. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  515. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  516. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  517. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  518. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  519. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  520. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  521. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
  522. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  523. package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  524. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  525. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
  526. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  527. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  528. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  529. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  530. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  531. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  532. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  533. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
  534. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  535. package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  536. package/.artifacts/SourceGenerators.Tests/bin/net9.0/testcentric.engine.metadata.dll +0 -0
  537. package/.artifacts/SourceGenerators.Tests/bin/net9.0/testhost.dll +0 -0
  538. package/.artifacts/SourceGenerators.Tests/bin/net9.0/testhost.exe +0 -0
  539. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  540. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
  541. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  542. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  543. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  544. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  545. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  546. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  547. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  548. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
  549. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  550. package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  551. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  552. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
  553. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  554. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  555. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  556. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  557. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  558. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  559. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  560. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
  561. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  562. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  563. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  564. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
  565. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
  566. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
  567. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
  568. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
  569. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
  570. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
  571. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
  572. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
  573. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
  574. package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
  575. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  576. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
  577. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +22 -0
  578. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +25 -0
  579. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
  580. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +28 -0
  581. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  582. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
  583. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  584. package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  585. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  586. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
  587. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +23 -0
  588. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  589. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
  590. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.BuildWithSkipAnalyzers +0 -0
  591. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +84 -0
  592. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  593. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
  594. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  595. package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  596. package/.artifacts/SourceGenerators.Tests/obj/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
  597. package/.artifacts/SourceGenerators.Tests/obj/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
  598. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +22 -0
  599. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +23 -0
  600. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
  601. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +55 -0
  602. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  603. package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
  604. package/.artifacts/SourceGenerators.Tests/obj/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  605. package/.artifacts/SourceGenerators.Tests/obj/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
  606. package/.config/dotnet-tools.json +1 -1
  607. package/.csharpierignore +1 -1
  608. package/.cspell.json +219 -0
  609. package/.cursorrules +3 -0
  610. package/.devcontainer/.dockerignore +92 -0
  611. package/.devcontainer/Dockerfile +475 -0
  612. package/.devcontainer/devcontainer.json +54 -0
  613. package/.devcontainer/verify-tools.sh +183 -0
  614. package/.editorconfig +6 -0
  615. package/.gitattributes +12 -0
  616. package/.github/ISSUE_TEMPLATE/bug_report.yml +95 -0
  617. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  618. package/.github/ISSUE_TEMPLATE/feature_request.yml +46 -0
  619. package/.github/copilot-instructions.md +3 -0
  620. package/.github/dependabot.yml +36 -2
  621. package/.github/pull_request_template.md +30 -0
  622. package/.github/release-drafter.yml +92 -0
  623. package/.github/scripts/check-markdown-links.ps1 +27 -3
  624. package/.github/scripts/check_markdown_links.py +132 -34
  625. package/.github/scripts/test_check_markdown_links.py +545 -0
  626. package/.github/workflows/actionlint.yml +37 -0
  627. package/.github/workflows/csharpier-autofix.yml +15 -6
  628. package/.github/workflows/deploy-docs.yml +118 -0
  629. package/.github/workflows/dotnet-tests.yml +2 -2
  630. package/.github/workflows/format-on-demand.yml +28 -18
  631. package/.github/workflows/json-format-check.yml +2 -1
  632. package/.github/workflows/lint-doc-links.yml +2 -1
  633. package/.github/workflows/markdown-json.yml +2 -1
  634. package/.github/workflows/markdown-link-text-check.yml +2 -1
  635. package/.github/workflows/markdown-link-validity.yml +2 -1
  636. package/.github/workflows/markdownlint.yml +25 -1
  637. package/.github/workflows/prettier-autofix.yml +20 -12
  638. package/.github/workflows/release-drafter.yml +135 -0
  639. package/.github/workflows/spellcheck.yml +56 -0
  640. package/.github/workflows/sync-wiki.yml +139 -0
  641. package/.github/workflows/update-dotnet-tools.yml +7 -3
  642. package/.github/workflows/validate-docs.yml +196 -0
  643. package/.github/workflows/validate-skills.yml +46 -0
  644. package/.github/workflows/yaml-format-lint.yml +2 -1
  645. package/.llm/context.md +269 -0
  646. package/.llm/skills/documentation/changelog-entry-writing.md +277 -0
  647. package/.llm/skills/documentation/changelog-management.md +190 -0
  648. package/.llm/skills/documentation/changelog-release-workflow.md +249 -0
  649. package/.llm/skills/documentation/documentation-code-samples.md +262 -0
  650. package/.llm/skills/documentation/documentation-style-guide.md +185 -0
  651. package/.llm/skills/documentation/documentation-update-workflow.md +146 -0
  652. package/.llm/skills/documentation/documentation-updates.md +146 -0
  653. package/.llm/skills/documentation/documentation-xml-docs.md +190 -0
  654. package/.llm/skills/documentation/external-url-fragment-validation.md +181 -0
  655. package/.llm/skills/documentation/github-actions-version-consistency.md +203 -0
  656. package/.llm/skills/documentation/link-quality-guidelines.md +267 -0
  657. package/.llm/skills/documentation/skill-file-sizing.md +260 -0
  658. package/.llm/skills/index.md +231 -0
  659. package/.llm/skills/performance/aggressive-inlining-performance-notes.md +94 -0
  660. package/.llm/skills/performance/aggressive-inlining.md +342 -0
  661. package/.llm/skills/performance/array-pooling-usage-examples.md +145 -0
  662. package/.llm/skills/performance/array-pooling.md +315 -0
  663. package/.llm/skills/performance/cache-eviction-builder.md +203 -0
  664. package/.llm/skills/performance/cache-eviction-implementation.md +340 -0
  665. package/.llm/skills/performance/cache-eviction-policies.md +176 -0
  666. package/.llm/skills/performance/collection-pooling.md +313 -0
  667. package/.llm/skills/performance/object-pooling-anti-patterns.md +144 -0
  668. package/.llm/skills/performance/object-pooling-usage-examples.md +114 -0
  669. package/.llm/skills/performance/object-pooling-variations.md +147 -0
  670. package/.llm/skills/performance/object-pooling.md +319 -0
  671. package/.llm/skills/performance/readonly-struct-cached-hash-performance-notes.md +91 -0
  672. package/.llm/skills/performance/readonly-struct-cached-hash.md +337 -0
  673. package/.llm/skills/performance/serializable-dictionary-property-drawer.md +147 -0
  674. package/.llm/skills/performance/serializable-dictionary-usage-examples.md +135 -0
  675. package/.llm/skills/performance/serializable-dictionary.md +281 -0
  676. package/.llm/skills/performance/singleton-autoload.md +111 -0
  677. package/.llm/skills/performance/singleton-patterns.md +165 -0
  678. package/.llm/skills/performance/singleton-runtime.md +187 -0
  679. package/.llm/skills/performance/singleton-scriptableobject.md +177 -0
  680. package/.llm/skills/performance/singleton-usage-examples.md +139 -0
  681. package/.llm/skills/performance/stringbuilder-pooling.md +319 -0
  682. package/.llm/skills/performance/yield-instruction-pooling.md +347 -0
  683. package/.llm/skills/scripting/cross-platform-compatibility.md +224 -0
  684. package/{Docs/Comparisons.md.meta → .llm/skills/scripting/cross-platform-compatibility.md.meta} +1 -1
  685. package/.llm/skills/scripting/powershell-best-practices.md +386 -0
  686. package/.llm/skills/scripting/shell-best-practices.md +335 -0
  687. package/.llm/skills/solid/collection-extensions-accessors.md +229 -0
  688. package/.llm/skills/solid/collection-extensions-shuffle.md +144 -0
  689. package/.llm/skills/solid/collection-extensions-type-specialization.md +168 -0
  690. package/.llm/skills/solid/collection-extensions.md +144 -0
  691. package/.llm/skills/solid/fluent-builder-pattern-templates.md +117 -0
  692. package/.llm/skills/solid/fluent-builder-pattern-usage-examples.md +128 -0
  693. package/.llm/skills/solid/fluent-builder-pattern.md +322 -0
  694. package/.llm/skills/solid/iequatable-implementation-usage.md +111 -0
  695. package/.llm/skills/solid/iequatable-implementation-variants.md +201 -0
  696. package/.llm/skills/solid/iequatable-implementation.md +239 -0
  697. package/.llm/skills/solid/try-pattern-apis-usage.md +136 -0
  698. package/.llm/skills/solid/try-pattern-apis-variants.md +233 -0
  699. package/.llm/skills/solid/try-pattern-apis.md +220 -0
  700. package/.llm/skills/specification.md +465 -0
  701. package/.llm/skills/templates/skill-template.md +143 -0
  702. package/.llm/skills/testing/comprehensive-test-coverage.md +141 -0
  703. package/.llm/skills/testing/data-driven-tests-sources.md +255 -0
  704. package/.llm/skills/testing/data-driven-tests-usage.md +107 -0
  705. package/.llm/skills/testing/data-driven-tests.md +197 -0
  706. package/.llm/skills/testing/git-workflow-robustness.md +369 -0
  707. package/.llm/skills/testing/script-test-coverage.md +259 -0
  708. package/{Docs/DesignAndArchitecture.md.meta → .llm/skills/testing/script-test-coverage.md.meta} +1 -1
  709. package/.llm/skills/testing/shared-test-fixtures-generic-base.md +185 -0
  710. package/.llm/skills/testing/shared-test-fixtures-reference-counting.md +252 -0
  711. package/.llm/skills/testing/shared-test-fixtures.md +165 -0
  712. package/.llm/skills/testing/test-base-class-cleanup-usage.md +218 -0
  713. package/.llm/skills/testing/test-base-class-cleanup.md +323 -0
  714. package/.llm/skills/testing/test-categories-execution.md +142 -0
  715. package/.llm/skills/testing/test-categories.md +287 -0
  716. package/.llm/skills/testing/test-coverage-data-driven.md +172 -0
  717. package/.llm/skills/testing/test-coverage-organization-assertions.md +171 -0
  718. package/.llm/skills/testing/test-coverage-scenario-categories.md +223 -0
  719. package/.llm/skills/testing/test-coverage-unity-anti-patterns.md +232 -0
  720. package/.llm/skills/testing/test-diagnostics-patterns.md +189 -0
  721. package/.llm/skills/testing/test-diagnostics-usage.md +196 -0
  722. package/.llm/skills/testing/test-diagnostics.md +247 -0
  723. package/.llm/skills/testing/test-failure-investigation-procedure.md +216 -0
  724. package/.llm/skills/testing/test-failure-investigation-root-causes.md +186 -0
  725. package/.llm/skills/testing/test-failure-investigation.md +119 -0
  726. package/.llm/skills/testing/test-invalid-skill.md +26 -0
  727. package/.lychee.toml +3 -1
  728. package/.markdownlint.json +2 -0
  729. package/.markdownlint.jsonc +2 -0
  730. package/.markdownlintignore +7 -7
  731. package/.pre-commit-config.yaml +88 -8
  732. package/.prettierignore +21 -21
  733. package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.metadata.v10.bin +0 -0
  734. package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.projects.v10.bin +0 -0
  735. package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.strings.v10.bin +0 -0
  736. package/.vs/ProjectSettings.json +3 -0
  737. package/.vs/VSWorkspaceState.json +9 -0
  738. package/.vs/com.wallstop-studios.dxmessaging/CopilotIndices/17.14.1347.20289/CodeChunks.db +0 -0
  739. package/.vs/com.wallstop-studios.dxmessaging/CopilotIndices/17.14.1347.20289/SemanticSymbols.db +0 -0
  740. package/.vs/com.wallstop-studios.dxmessaging/DesignTimeBuild/.dtbcache.v2 +0 -0
  741. package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/41b4588f-fa0f-484b-a29b-733b6ce84c26.vsidx +0 -0
  742. package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/9a73875f-5693-4296-95fd-0672bf61c5ac.vsidx +0 -0
  743. package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/fd44ab3e-7015-4c20-918a-a0a916be8934.vsidx +0 -0
  744. package/.vs/com.wallstop-studios.dxmessaging/v17/.futdcache.v2 +0 -0
  745. package/.vs/com.wallstop-studios.dxmessaging/v17/.wsuo +0 -0
  746. package/.vs/com.wallstop-studios.dxmessaging/v17/DocumentLayout.backup.json +82 -0
  747. package/.vs/com.wallstop-studios.dxmessaging/v17/DocumentLayout.json +82 -0
  748. package/.vs/com.wallstop-studios.dxmessaging/v17/TestStore/0/000.testlog +0 -0
  749. package/.vs/com.wallstop-studios.dxmessaging/v17/TestStore/0/testlog.manifest +0 -0
  750. package/.vs/com.wallstop-studios.dxmessaging/v17/csharpier.json +1 -0
  751. package/.vs/com.wallstop-studios.dxmessaging/v18/.futdcache.v2 +0 -0
  752. package/.vs/com.wallstop-studios.dxmessaging/v18/DocumentLayout.backup.json +86 -0
  753. package/.vs/com.wallstop-studios.dxmessaging/v18/DocumentLayout.json +86 -0
  754. package/.vs/slnx.sqlite +0 -0
  755. package/AGENTS.md +1 -50
  756. package/CHANGELOG.md +31 -0
  757. package/CLAUDE.md +3 -0
  758. package/{Docs/Compatibility.md.meta → CLAUDE.md.meta} +1 -1
  759. package/CONTRIBUTING.md +14 -4
  760. package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
  761. package/Editor/Settings/DxMessagingSettings.cs +2 -3
  762. package/README.md +144 -109
  763. package/Runtime/Core/MessageBus/IMessageBus.cs +20 -1
  764. package/Runtime/Core/MessageBus/MessageBus.cs +2348 -1226
  765. package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs +4 -2
  766. package/Runtime/Core/MessageHandler.cs +519 -6
  767. package/Samples~/DI/README.md +2 -2
  768. package/Samples~/Mini Combat/README.md +7 -7
  769. package/Samples~/Mini Combat/Walkthrough.md +12 -12
  770. package/Samples~/UI Buttons + Inspector/README.md +8 -8
  771. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/CopilotIndices/17.14.1231.31060/CodeChunks.db +0 -0
  772. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/CopilotIndices/17.14.1231.31060/SemanticSymbols.db +0 -0
  773. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/DesignTimeBuild/.dtbcache.v2 +0 -0
  774. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/FileContentIndex/c90afd9b-d899-4546-bd92-ab874e448437.vsidx +0 -0
  775. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/v17/.futdcache.v2 +0 -0
  776. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/DocsSnippetCompilationTests.cs +355 -4
  777. package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj +2 -2
  778. package/Tests/Runtime/Benchmarks/BenchmarkSession.cs +6 -3
  779. package/Tests/Runtime/Core/BroadcastTests.cs +80 -66
  780. package/Tests/Runtime/Core/CyclicBufferTests.cs +284 -14
  781. package/Tests/Runtime/Core/DiagnosticsTests.cs +72 -0
  782. package/Tests/Runtime/Core/DxMessagingStaticStateTests.cs +1 -1
  783. package/Tests/Runtime/Core/Extensions/MessageBusExtensionsTests.cs +12 -31
  784. package/Tests/Runtime/Core/GlobalAcceptAllTests.cs +26 -26
  785. package/Tests/Runtime/Core/MutationDedupeTests.cs +24 -24
  786. package/Tests/Runtime/Core/MutationDuringEmissionTests.cs +126 -9
  787. package/Tests/Runtime/Core/MutationHighVolumeStressTests.cs +512 -0
  788. package/Tests/Runtime/Core/MutationHighVolumeStressTests.cs.meta +11 -0
  789. package/Tests/Runtime/Core/NominalTests.cs +82 -81
  790. package/Tests/Runtime/Core/OrderingManyRegistrationsTests.cs +683 -0
  791. package/Tests/Runtime/Core/OrderingManyRegistrationsTests.cs.meta +11 -0
  792. package/Tests/Runtime/Core/PostProcessorTests.cs +108 -99
  793. package/Tests/Runtime/Core/RegistrationTests.cs +159 -159
  794. package/Tests/Runtime/Core/TargetedTests.cs +80 -66
  795. package/Tests/Runtime/Core/UntargetedTests.cs +25 -20
  796. package/Tests/Runtime/Integrations/Zenject/ZenjectIntegrationTests.cs +0 -1
  797. package/coverage/clover.xml +6 -0
  798. package/{Docs/Advanced.md.meta → coverage/clover.xml.meta} +7 -7
  799. package/coverage/coverage-final.json +1 -0
  800. package/coverage/coverage-final.json.meta +7 -0
  801. package/coverage/lcov-report/base.css +224 -0
  802. package/coverage/lcov-report/base.css.meta +7 -0
  803. package/coverage/lcov-report/block-navigation.js +87 -0
  804. package/coverage/lcov-report/block-navigation.js.meta +7 -0
  805. package/coverage/lcov-report/favicon.png +0 -0
  806. package/coverage/lcov-report/favicon.png.meta +127 -0
  807. package/coverage/lcov-report/index.html +101 -0
  808. package/coverage/lcov-report/index.html.meta +7 -0
  809. package/coverage/lcov-report/prettify.css +1 -0
  810. package/coverage/lcov-report/prettify.css.meta +7 -0
  811. package/coverage/lcov-report/prettify.js +2 -0
  812. package/coverage/lcov-report/prettify.js.meta +7 -0
  813. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  814. package/coverage/lcov-report/sort-arrow-sprite.png.meta +127 -0
  815. package/coverage/lcov-report/sorter.js +210 -0
  816. package/coverage/lcov-report/sorter.js.meta +7 -0
  817. package/coverage/lcov-report/transform-docs-to-wiki.js.html +1312 -0
  818. package/coverage/lcov-report/transform-docs-to-wiki.js.html.meta +7 -0
  819. package/coverage/lcov-report/vendor.meta +8 -0
  820. package/coverage/lcov-report.meta +8 -0
  821. package/coverage/lcov.info +0 -0
  822. package/coverage/lcov.info.meta +7 -0
  823. package/{Docs/EmitShorthands.md → docs/advanced/emit-shorthands.md} +17 -17
  824. package/docs/advanced/emit-shorthands.md.meta +7 -0
  825. package/{Docs/MessageBusProviders.md → docs/advanced/message-bus-providers.md} +5 -4
  826. package/docs/advanced/message-bus-providers.md.meta +7 -0
  827. package/docs/advanced/registration-builders.md +444 -0
  828. package/docs/advanced/registration-builders.md.meta +7 -0
  829. package/{Docs/RuntimeConfiguration.md → docs/advanced/runtime-configuration.md} +5 -4
  830. package/docs/advanced/runtime-configuration.md.meta +7 -0
  831. package/{Docs/StringMessages.md → docs/advanced/string-messages.md} +2 -2
  832. package/docs/advanced/string-messages.md.meta +7 -0
  833. package/docs/advanced.meta +8 -0
  834. package/{Docs/Comparisons.md → docs/architecture/comparisons.md} +71 -66
  835. package/docs/architecture/comparisons.md.meta +7 -0
  836. package/{Docs/DesignAndArchitecture.md → docs/architecture/design-and-architecture.md} +17 -16
  837. package/docs/architecture/design-and-architecture.md.meta +7 -0
  838. package/docs/architecture/performance.md +53 -0
  839. package/docs/architecture/performance.md.meta +7 -0
  840. package/docs/architecture.meta +8 -0
  841. package/{Docs/InterceptorsAndOrdering.md → docs/concepts/interceptors-and-ordering.md} +58 -55
  842. package/docs/concepts/interceptors-and-ordering.md.meta +7 -0
  843. package/{Docs/ListeningPatterns.md → docs/concepts/listening-patterns.md} +17 -15
  844. package/docs/concepts/listening-patterns.md.meta +7 -0
  845. package/{Docs/MessageTypes.md → docs/concepts/message-types.md} +19 -13
  846. package/docs/concepts/message-types.md.meta +7 -0
  847. package/{Docs/TargetingAndContext.md → docs/concepts/targeting-and-context.md} +10 -10
  848. package/docs/concepts/targeting-and-context.md.meta +7 -0
  849. package/docs/concepts.meta +8 -0
  850. package/docs/examples/end-to-end-scene-transitions.md.meta +7 -0
  851. package/{Docs/EndToEnd.md → docs/examples/end-to-end.md} +1 -1
  852. package/docs/examples/end-to-end.md.meta +7 -0
  853. package/docs/examples.meta +8 -0
  854. package/{Docs/GettingStarted.md → docs/getting-started/getting-started.md} +30 -28
  855. package/docs/getting-started/getting-started.md.meta +7 -0
  856. package/docs/getting-started/index.md +316 -0
  857. package/docs/getting-started/index.md.meta +7 -0
  858. package/docs/getting-started/install.md +89 -0
  859. package/docs/getting-started/install.md.meta +7 -0
  860. package/{Docs/Overview.md → docs/getting-started/overview.md} +36 -35
  861. package/docs/getting-started/overview.md.meta +7 -0
  862. package/{Docs/QuickStart.md → docs/getting-started/quick-start.md} +42 -47
  863. package/docs/getting-started/quick-start.md.meta +7 -0
  864. package/{Docs/VisualGuide.md → docs/getting-started/visual-guide.md} +117 -108
  865. package/docs/getting-started/visual-guide.md.meta +7 -0
  866. package/docs/getting-started.meta +8 -0
  867. package/{Docs/Advanced.md → docs/guides/advanced.md} +4 -4
  868. package/docs/guides/advanced.md.meta +7 -0
  869. package/docs/guides/diagnostics.md +300 -0
  870. package/docs/guides/diagnostics.md.meta +7 -0
  871. package/{Docs/MigrationGuide.md → docs/guides/migration-guide.md} +3 -3
  872. package/docs/guides/migration-guide.md.meta +7 -0
  873. package/{Docs/Patterns.md → docs/guides/patterns.md} +22 -22
  874. package/docs/guides/patterns.md.meta +7 -0
  875. package/docs/guides/testing.md +243 -0
  876. package/docs/guides/testing.md.meta +7 -0
  877. package/{Docs/UnityIntegration.md → docs/guides/unity-integration.md} +13 -13
  878. package/docs/guides/unity-integration.md.meta +7 -0
  879. package/docs/guides.meta +8 -0
  880. package/docs/hooks.py +168 -0
  881. package/docs/hooks.py.meta +7 -0
  882. package/docs/images/DxMessaging-banner.svg +119 -0
  883. package/docs/images/DxMessaging-banner.svg.meta +7 -0
  884. package/docs/images.meta +8 -0
  885. package/docs/index.md +61 -0
  886. package/docs/integrations/index.md +66 -0
  887. package/docs/integrations/index.md.meta +7 -0
  888. package/{Docs/Integrations/Reflex.md → docs/integrations/reflex.md} +43 -18
  889. package/{Docs/Integrations/VContainer.md → docs/integrations/vcontainer.md} +18 -9
  890. package/{Docs/Integrations/Zenject.md → docs/integrations/zenject.md} +6 -6
  891. package/docs/javascripts/csharp-highlight.js +246 -0
  892. package/docs/javascripts/csharp-highlight.js.meta +7 -0
  893. package/docs/javascripts/mermaid-config.js +347 -0
  894. package/docs/javascripts/mermaid-config.js.meta +7 -0
  895. package/docs/javascripts.meta +8 -0
  896. package/{Docs/Compatibility.md → docs/reference/compatibility.md} +7 -7
  897. package/docs/reference/compatibility.md.meta +7 -0
  898. package/{Docs/FAQ.md → docs/reference/faq.md} +21 -26
  899. package/docs/reference/faq.md.meta +7 -0
  900. package/{Docs/Glossary.md → docs/reference/glossary.md} +18 -13
  901. package/docs/reference/glossary.md.meta +7 -0
  902. package/{Docs/Helpers.md → docs/reference/helpers.md} +409 -81
  903. package/docs/reference/helpers.md.meta +7 -0
  904. package/{Docs/QuickReference.md → docs/reference/quick-reference.md} +128 -58
  905. package/docs/reference/quick-reference.md.meta +7 -0
  906. package/docs/reference/reference.md +371 -0
  907. package/docs/reference/reference.md.meta +7 -0
  908. package/{Docs/Troubleshooting.md → docs/reference/troubleshooting.md} +12 -17
  909. package/docs/reference/troubleshooting.md.meta +7 -0
  910. package/docs/reference.meta +8 -0
  911. package/docs/stylesheets/extra.css +485 -0
  912. package/docs/stylesheets/extra.css.meta +7 -0
  913. package/docs/stylesheets.meta +8 -0
  914. package/mkdocs.yml +198 -0
  915. package/mkdocs.yml.meta +7 -0
  916. package/package.json +8 -6
  917. package/requirements-docs.txt +23 -0
  918. package/requirements-docs.txt.meta +7 -0
  919. package/scripts/__tests__/sync-banner-version.test.js +606 -0
  920. package/scripts/__tests__/sync-banner-version.test.js.meta +7 -0
  921. package/scripts/__tests__.meta +8 -0
  922. package/scripts/check-eol.js +290 -19
  923. package/scripts/check-eol.ps1 +103 -15
  924. package/scripts/fix-eol.js +78 -11
  925. package/scripts/generate-skills-index.js +512 -0
  926. package/scripts/generate-skills-index.js.meta +7 -0
  927. package/scripts/generate-skills-index.ps1 +38 -0
  928. package/scripts/generate-skills-index.ps1.meta +7 -0
  929. package/scripts/hooks/pre-commit +59 -0
  930. package/scripts/hooks/pre-commit.meta +7 -0
  931. package/scripts/hooks.meta +8 -0
  932. package/scripts/sync-banner-version.ps1 +133 -0
  933. package/scripts/sync-banner-version.ps1.meta +7 -0
  934. package/scripts/sync-banner-version.sh +16 -0
  935. package/scripts/sync-banner-version.sh.meta +7 -0
  936. package/scripts/validate-skills.js +557 -0
  937. package/scripts/validate-skills.js.meta +7 -0
  938. package/scripts/wiki/__tests__/transform.test.js +380 -0
  939. package/scripts/wiki/__tests__/transform.test.js.meta +7 -0
  940. package/scripts/wiki/__tests__.meta +7 -0
  941. package/scripts/wiki/generate-wiki-sidebar.js +122 -0
  942. package/{Docs/EmitShorthands.md.meta → scripts/wiki/generate-wiki-sidebar.js.meta} +8 -2
  943. package/scripts/wiki/transform-docs-to-wiki.js +409 -0
  944. package/scripts/wiki/transform-docs-to-wiki.js.meta +7 -0
  945. package/scripts/wiki.meta +8 -0
  946. package/site/404.html +1 -0
  947. package/site/404.html.meta +7 -0
  948. package/site/advanced/emit-shorthands/index.html +212 -0
  949. package/site/advanced/emit-shorthands/index.html.meta +7 -0
  950. package/site/advanced/emit-shorthands.meta +8 -0
  951. package/site/advanced/message-bus-providers/index.html +241 -0
  952. package/site/advanced/message-bus-providers/index.html.meta +7 -0
  953. package/site/advanced/message-bus-providers.meta +8 -0
  954. package/site/advanced/registration-builders/index.html +228 -0
  955. package/site/advanced/registration-builders/index.html.meta +7 -0
  956. package/site/advanced/registration-builders.meta +8 -0
  957. package/site/advanced/runtime-configuration/index.html +196 -0
  958. package/site/advanced/runtime-configuration/index.html.meta +7 -0
  959. package/site/advanced/runtime-configuration.meta +8 -0
  960. package/site/advanced/string-messages/index.html +29 -0
  961. package/site/advanced/string-messages/index.html.meta +7 -0
  962. package/site/advanced/string-messages.meta +8 -0
  963. package/site/advanced.meta +8 -0
  964. package/site/architecture/comparisons/index.html +356 -0
  965. package/site/architecture/comparisons/index.html.meta +7 -0
  966. package/site/architecture/comparisons.meta +8 -0
  967. package/site/architecture/design-and-architecture/index.html +34 -0
  968. package/site/architecture/design-and-architecture/index.html.meta +7 -0
  969. package/site/architecture/design-and-architecture.meta +8 -0
  970. package/site/architecture/performance/index.html +1 -0
  971. package/site/architecture/performance/index.html.meta +7 -0
  972. package/site/architecture/performance.meta +8 -0
  973. package/site/architecture.meta +8 -0
  974. package/site/assets/images/favicon.png +0 -0
  975. package/site/assets/images/favicon.png.meta +127 -0
  976. package/site/assets/images.meta +8 -0
  977. package/site/assets/javascripts/bundle.79ae519e.min.js +16 -0
  978. package/site/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
  979. package/site/assets/javascripts/bundle.79ae519e.min.js.map.meta +7 -0
  980. package/site/assets/javascripts/bundle.79ae519e.min.js.meta +7 -0
  981. package/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  982. package/site/assets/javascripts/lunr/min/lunr.ar.min.js.meta +7 -0
  983. package/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  984. package/site/assets/javascripts/lunr/min/lunr.da.min.js.meta +7 -0
  985. package/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  986. package/site/assets/javascripts/lunr/min/lunr.de.min.js.meta +7 -0
  987. package/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  988. package/site/assets/javascripts/lunr/min/lunr.du.min.js.meta +7 -0
  989. package/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  990. package/site/assets/javascripts/lunr/min/lunr.el.min.js.meta +7 -0
  991. package/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  992. package/site/assets/javascripts/lunr/min/lunr.es.min.js.meta +7 -0
  993. package/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  994. package/site/assets/javascripts/lunr/min/lunr.fi.min.js.meta +7 -0
  995. package/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  996. package/site/assets/javascripts/lunr/min/lunr.fr.min.js.meta +7 -0
  997. package/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  998. package/site/assets/javascripts/lunr/min/lunr.he.min.js.meta +7 -0
  999. package/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  1000. package/site/assets/javascripts/lunr/min/lunr.hi.min.js.meta +7 -0
  1001. package/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  1002. package/site/assets/javascripts/lunr/min/lunr.hu.min.js.meta +7 -0
  1003. package/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  1004. package/site/assets/javascripts/lunr/min/lunr.hy.min.js.meta +7 -0
  1005. package/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  1006. package/site/assets/javascripts/lunr/min/lunr.it.min.js.meta +7 -0
  1007. package/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  1008. package/site/assets/javascripts/lunr/min/lunr.ja.min.js.meta +7 -0
  1009. package/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  1010. package/site/assets/javascripts/lunr/min/lunr.jp.min.js.meta +7 -0
  1011. package/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  1012. package/site/assets/javascripts/lunr/min/lunr.kn.min.js.meta +7 -0
  1013. package/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  1014. package/site/assets/javascripts/lunr/min/lunr.ko.min.js.meta +7 -0
  1015. package/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  1016. package/site/assets/javascripts/lunr/min/lunr.multi.min.js.meta +7 -0
  1017. package/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  1018. package/site/assets/javascripts/lunr/min/lunr.nl.min.js.meta +7 -0
  1019. package/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  1020. package/site/assets/javascripts/lunr/min/lunr.no.min.js.meta +7 -0
  1021. package/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  1022. package/site/assets/javascripts/lunr/min/lunr.pt.min.js.meta +7 -0
  1023. package/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  1024. package/site/assets/javascripts/lunr/min/lunr.ro.min.js.meta +7 -0
  1025. package/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  1026. package/site/assets/javascripts/lunr/min/lunr.ru.min.js.meta +7 -0
  1027. package/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  1028. package/site/assets/javascripts/lunr/min/lunr.sa.min.js.meta +7 -0
  1029. package/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  1030. package/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js.meta +7 -0
  1031. package/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  1032. package/site/assets/javascripts/lunr/min/lunr.sv.min.js.meta +7 -0
  1033. package/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  1034. package/site/assets/javascripts/lunr/min/lunr.ta.min.js.meta +7 -0
  1035. package/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  1036. package/site/assets/javascripts/lunr/min/lunr.te.min.js.meta +7 -0
  1037. package/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  1038. package/site/assets/javascripts/lunr/min/lunr.th.min.js.meta +7 -0
  1039. package/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  1040. package/site/assets/javascripts/lunr/min/lunr.tr.min.js.meta +7 -0
  1041. package/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  1042. package/site/assets/javascripts/lunr/min/lunr.vi.min.js.meta +7 -0
  1043. package/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  1044. package/site/assets/javascripts/lunr/min/lunr.zh.min.js.meta +7 -0
  1045. package/site/assets/javascripts/lunr/min.meta +8 -0
  1046. package/site/assets/javascripts/lunr/tinyseg.js +206 -0
  1047. package/site/assets/javascripts/lunr/tinyseg.js.meta +7 -0
  1048. package/site/assets/javascripts/lunr/wordcut.js +6708 -0
  1049. package/site/assets/javascripts/lunr/wordcut.js.meta +7 -0
  1050. package/site/assets/javascripts/lunr.meta +8 -0
  1051. package/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
  1052. package/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  1053. package/site/assets/javascripts/workers/search.2c215733.min.js.map.meta +7 -0
  1054. package/site/assets/javascripts/workers/search.2c215733.min.js.meta +7 -0
  1055. package/site/assets/javascripts/workers.meta +8 -0
  1056. package/site/assets/javascripts.meta +8 -0
  1057. package/site/assets/stylesheets/main.484c7ddc.min.css +1 -0
  1058. package/site/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
  1059. package/site/assets/stylesheets/main.484c7ddc.min.css.map.meta +7 -0
  1060. package/site/assets/stylesheets/main.484c7ddc.min.css.meta +7 -0
  1061. package/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  1062. package/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  1063. package/site/assets/stylesheets/palette.ab4e12ef.min.css.map.meta +7 -0
  1064. package/site/assets/stylesheets/palette.ab4e12ef.min.css.meta +7 -0
  1065. package/site/assets/stylesheets.meta +8 -0
  1066. package/site/assets.meta +8 -0
  1067. package/site/concepts/interceptors-and-ordering/index.html +352 -0
  1068. package/site/concepts/interceptors-and-ordering/index.html.meta +7 -0
  1069. package/site/concepts/interceptors-and-ordering.meta +8 -0
  1070. package/site/concepts/listening-patterns/index.html +193 -0
  1071. package/site/concepts/listening-patterns/index.html.meta +7 -0
  1072. package/site/concepts/listening-patterns.meta +8 -0
  1073. package/site/concepts/message-types/index.html +111 -0
  1074. package/site/concepts/message-types/index.html.meta +7 -0
  1075. package/site/concepts/message-types.meta +8 -0
  1076. package/site/concepts/targeting-and-context/index.html +201 -0
  1077. package/site/concepts/targeting-and-context/index.html.meta +7 -0
  1078. package/site/concepts/targeting-and-context.meta +8 -0
  1079. package/site/concepts.meta +8 -0
  1080. package/site/css/timeago.css +15 -0
  1081. package/site/css/timeago.css.meta +7 -0
  1082. package/site/css.meta +8 -0
  1083. package/site/examples/end-to-end/index.html +85 -0
  1084. package/site/examples/end-to-end/index.html.meta +7 -0
  1085. package/site/examples/end-to-end-scene-transitions/index.html +84 -0
  1086. package/site/examples/end-to-end-scene-transitions/index.html.meta +7 -0
  1087. package/site/examples/end-to-end-scene-transitions.meta +8 -0
  1088. package/site/examples/end-to-end.meta +8 -0
  1089. package/site/examples.meta +8 -0
  1090. package/site/getting-started/getting-started/index.html +66 -0
  1091. package/site/getting-started/getting-started/index.html.meta +7 -0
  1092. package/site/getting-started/getting-started.meta +8 -0
  1093. package/site/getting-started/index.html +29 -0
  1094. package/site/getting-started/index.html.meta +7 -0
  1095. package/site/getting-started/install/index.html +8 -0
  1096. package/site/getting-started/install/index.html.meta +7 -0
  1097. package/site/getting-started/install.meta +8 -0
  1098. package/site/getting-started/overview/index.html +33 -0
  1099. package/site/getting-started/overview/index.html.meta +7 -0
  1100. package/site/getting-started/overview.meta +8 -0
  1101. package/site/getting-started/quick-start/index.html +81 -0
  1102. package/site/getting-started/quick-start/index.html.meta +7 -0
  1103. package/site/getting-started/quick-start.meta +8 -0
  1104. package/site/getting-started/visual-guide/index.html +256 -0
  1105. package/site/getting-started/visual-guide/index.html.meta +7 -0
  1106. package/site/getting-started/visual-guide.meta +8 -0
  1107. package/site/getting-started.meta +8 -0
  1108. package/site/guides/advanced/index.html +119 -0
  1109. package/site/guides/advanced/index.html.meta +7 -0
  1110. package/site/guides/advanced.meta +8 -0
  1111. package/site/guides/diagnostics/index.html +110 -0
  1112. package/site/guides/diagnostics/index.html.meta +7 -0
  1113. package/site/guides/diagnostics.meta +8 -0
  1114. package/site/guides/migration-guide/index.html +199 -0
  1115. package/site/guides/migration-guide/index.html.meta +7 -0
  1116. package/site/guides/migration-guide.meta +8 -0
  1117. package/site/guides/patterns/index.html +545 -0
  1118. package/site/guides/patterns/index.html.meta +7 -0
  1119. package/site/guides/patterns.meta +8 -0
  1120. package/site/guides/testing/index.html +153 -0
  1121. package/site/guides/testing/index.html.meta +7 -0
  1122. package/site/guides/testing.meta +8 -0
  1123. package/site/guides/unity-integration/index.html +67 -0
  1124. package/site/guides/unity-integration/index.html.meta +7 -0
  1125. package/site/guides/unity-integration.meta +8 -0
  1126. package/site/guides.meta +8 -0
  1127. package/site/hooks.py +168 -0
  1128. package/site/hooks.py.meta +7 -0
  1129. package/site/index.html +17 -0
  1130. package/site/index.html.meta +7 -0
  1131. package/site/integrations/index.html +8 -0
  1132. package/site/integrations/index.html.meta +7 -0
  1133. package/site/integrations/reflex/index.html +186 -0
  1134. package/site/integrations/reflex/index.html.meta +7 -0
  1135. package/site/integrations/reflex.meta +8 -0
  1136. package/site/integrations/vcontainer/index.html +192 -0
  1137. package/site/integrations/vcontainer/index.html.meta +7 -0
  1138. package/site/integrations/vcontainer.meta +8 -0
  1139. package/site/integrations/zenject/index.html +197 -0
  1140. package/site/integrations/zenject/index.html.meta +7 -0
  1141. package/site/integrations/zenject.meta +8 -0
  1142. package/site/integrations.meta +8 -0
  1143. package/site/javascripts/csharp-highlight.js +246 -0
  1144. package/site/javascripts/csharp-highlight.js.meta +7 -0
  1145. package/site/javascripts/mermaid-config.js +347 -0
  1146. package/site/javascripts/mermaid-config.js.meta +7 -0
  1147. package/site/javascripts.meta +8 -0
  1148. package/site/js/timeago.min.js +2 -0
  1149. package/site/js/timeago.min.js.meta +7 -0
  1150. package/site/js/timeago_mkdocs_material.js +33 -0
  1151. package/site/js/timeago_mkdocs_material.js.meta +7 -0
  1152. package/site/js.meta +8 -0
  1153. package/site/reference/compatibility/index.html +1 -0
  1154. package/site/reference/compatibility/index.html.meta +7 -0
  1155. package/site/reference/compatibility.meta +8 -0
  1156. package/site/reference/faq/index.html +1 -0
  1157. package/site/reference/faq/index.html.meta +7 -0
  1158. package/site/reference/faq.meta +8 -0
  1159. package/site/reference/glossary/index.html +55 -0
  1160. package/site/reference/glossary/index.html.meta +7 -0
  1161. package/site/reference/glossary.meta +8 -0
  1162. package/site/reference/helpers/index.html +475 -0
  1163. package/site/reference/helpers/index.html.meta +7 -0
  1164. package/site/reference/helpers.meta +8 -0
  1165. package/site/reference/quick-reference/index.html +138 -0
  1166. package/site/reference/quick-reference/index.html.meta +7 -0
  1167. package/site/reference/quick-reference.meta +8 -0
  1168. package/site/reference/reference/index.html +194 -0
  1169. package/site/reference/reference/index.html.meta +7 -0
  1170. package/site/reference/reference.meta +8 -0
  1171. package/site/reference/troubleshooting/index.html +1 -0
  1172. package/site/reference/troubleshooting/index.html.meta +7 -0
  1173. package/site/reference/troubleshooting.meta +8 -0
  1174. package/site/reference.meta +8 -0
  1175. package/site/search/search_index.json +1 -0
  1176. package/site/search/search_index.json.meta +7 -0
  1177. package/site/search.meta +8 -0
  1178. package/site/sitemap.xml +155 -0
  1179. package/site/sitemap.xml.gz +0 -0
  1180. package/site/sitemap.xml.gz.meta +7 -0
  1181. package/site/sitemap.xml.meta +7 -0
  1182. package/site/stylesheets/extra.css +485 -0
  1183. package/site/stylesheets/extra.css.meta +7 -0
  1184. package/site/stylesheets.meta +8 -0
  1185. package/.github/workflows/npm-publish.yml +0 -75
  1186. package/Docs/Diagnostics.md +0 -61
  1187. package/Docs/Diagnostics.md.meta +0 -7
  1188. package/Docs/EndToEnd.md.meta +0 -7
  1189. package/Docs/EndToEndSceneTransitions.md.meta +0 -7
  1190. package/Docs/FAQ.md.meta +0 -7
  1191. package/Docs/GettingStarted.md.meta +0 -7
  1192. package/Docs/Glossary.md.meta +0 -7
  1193. package/Docs/Helpers.md.meta +0 -7
  1194. package/Docs/Index.md +0 -305
  1195. package/Docs/Install.md +0 -60
  1196. package/Docs/Install.md.meta +0 -7
  1197. package/Docs/InterceptorsAndOrdering.md.meta +0 -7
  1198. package/Docs/ListeningPatterns.md.meta +0 -7
  1199. package/Docs/MessageBusProviders.md.meta +0 -7
  1200. package/Docs/MessageTypes.md.meta +0 -7
  1201. package/Docs/MigrationGuide.md.meta +0 -7
  1202. package/Docs/Overview.md.meta +0 -7
  1203. package/Docs/Patterns.md.meta +0 -7
  1204. package/Docs/Performance.md +0 -35
  1205. package/Docs/Performance.md.meta +0 -7
  1206. package/Docs/QuickReference.md.meta +0 -7
  1207. package/Docs/QuickStart.md.meta +0 -7
  1208. package/Docs/Reference.md +0 -88
  1209. package/Docs/Reference.md.meta +0 -7
  1210. package/Docs/RuntimeConfiguration.md.meta +0 -7
  1211. package/Docs/StringMessages.md.meta +0 -7
  1212. package/Docs/TargetingAndContext.md.meta +0 -7
  1213. package/Docs/Troubleshooting.md.meta +0 -7
  1214. package/Docs/UnityIntegration.md.meta +0 -7
  1215. package/Docs/VisualGuide.md.meta +0 -7
  1216. /package/{Docs/EndToEndSceneTransitions.md → docs/examples/end-to-end-scene-transitions.md} +0 -0
  1217. /package/{Docs/Index.md.meta → docs/index.md.meta} +0 -0
  1218. /package/{Docs/Integrations/Reflex.md.meta → docs/integrations/reflex.md.meta} +0 -0
  1219. /package/{Docs/Integrations/VContainer.md.meta → docs/integrations/vcontainer.md.meta} +0 -0
  1220. /package/{Docs/Integrations/Zenject.md.meta → docs/integrations/zenject.md.meta} +0 -0
  1221. /package/{Docs/Integrations.meta → docs/integrations.meta} +0 -0
  1222. /package/{Docs.meta → docs.meta} +0 -0
@@ -0,0 +1,352 @@
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="High-performance type-safe messaging library for Unity"><meta name=author content="Wallstop Studios"><link href=https://wallstop.github.io/DxMessaging/concepts/interceptors-and-ordering/ rel=canonical><link href=../targeting-and-context/ rel=prev><link href=../../guides/patterns/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.1"><title>Interceptors & Ordering - DxMessaging Documentation</title><link rel=stylesheet href=../../assets/stylesheets/main.484c7ddc.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><link rel=stylesheet href=../../stylesheets/extra.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#interceptors-ordering-and-postprocessing class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class="md-header md-header--shadow md-header--lifted" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="DxMessaging Documentation" class="md-header__button md-logo" aria-label="DxMessaging Documentation" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> DxMessaging Documentation </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Interceptors & Ordering </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <a href=javascript:void(0) class="md-search__icon md-icon" title=Share aria-label=Share data-clipboard data-clipboard-text data-md-component=search-share tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg> </a> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/wallstop/DxMessaging title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> wallstop/DxMessaging </div> </a> </div> </nav> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../getting-started/ class=md-tabs__link> Getting Started </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../message-types/ class=md-tabs__link> Concepts </a> </li> <li class=md-tabs__item> <a href=../../guides/patterns/ class=md-tabs__link> Guides </a> </li> <li class=md-tabs__item> <a href=../../architecture/design-and-architecture/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../advanced/emit-shorthands/ class=md-tabs__link> Advanced </a> </li> <li class=md-tabs__item> <a href=../../integrations/ class=md-tabs__link> Integrations </a> </li> <li class=md-tabs__item> <a href=../../examples/end-to-end/ class=md-tabs__link> Examples </a> </li> <li class=md-tabs__item> <a href=../../reference/reference/ class=md-tabs__link> Reference </a> </li> </ul> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="DxMessaging Documentation" class="md-nav__button md-logo" aria-label="DxMessaging Documentation" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> DxMessaging Documentation </label> <div class=md-nav__source> <a href=https://github.com/wallstop/DxMessaging title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> wallstop/DxMessaging </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <div class="md-nav__link md-nav__container"> <a href=../../getting-started/ class="md-nav__link "> <span class=md-ellipsis> Getting Started </span> </a> <label class="md-nav__link " for=__nav_2 id=__nav_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/overview/ class=md-nav__link> <span class=md-ellipsis> Overview </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/install/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/getting-started/ class=md-nav__link> <span class=md-ellipsis> Getting Started Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/visual-guide/ class=md-nav__link> <span class=md-ellipsis> Visual Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Concepts </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Concepts </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../message-types/ class=md-nav__link> <span class=md-ellipsis> Message Types </span> </a> </li> <li class=md-nav__item> <a href=../listening-patterns/ class=md-nav__link> <span class=md-ellipsis> Listening Patterns </span> </a> </li> <li class=md-nav__item> <a href=../targeting-and-context/ class=md-nav__link> <span class=md-ellipsis> Targeting & Context </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Interceptors & Ordering </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Interceptors & Ordering </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#snapshot-semantics-frozen-listener-lists class=md-nav__link> <span class=md-ellipsis> Snapshot Semantics: Frozen Listener Lists </span> </a> <nav class=md-nav aria-label="Snapshot Semantics: Frozen Listener Lists"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#what-this-means class=md-nav__link> <span class=md-ellipsis> What this means </span> </a> <nav class=md-nav aria-label="What this means"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example class=md-nav__link> <span class=md-ellipsis> Example </span> </a> <nav class=md-nav aria-label=Example> <ul class=md-nav__list> <li class=md-nav__item> <a href=#why-this-matters class=md-nav__link> <span class=md-ellipsis> Why this matters </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#statebased-message-cancellation class=md-nav__link> <span class=md-ellipsis> State‑Based Message Cancellation </span> </a> </li> <li class=md-nav__item> <a href=#value-clamping-and-normalization class=md-nav__link> <span class=md-ellipsis> Value Clamping and Normalization </span> </a> </li> <li class=md-nav__item> <a href=#permission-and-authorization-checks class=md-nav__link> <span class=md-ellipsis> Permission and Authorization Checks </span> </a> </li> <li class=md-nav__item> <a href=#message-enrichment-and-context-addition class=md-nav__link> <span class=md-ellipsis> Message Enrichment and Context Addition </span> </a> </li> <li class=md-nav__item> <a href=#cooldown-and-rate-limiting class=md-nav__link> <span class=md-ellipsis> Cooldown and Rate Limiting </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Guides </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Guides </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../guides/patterns/ class=md-nav__link> <span class=md-ellipsis> Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../guides/unity-integration/ class=md-nav__link> <span class=md-ellipsis> Unity Integration </span> </a> </li> <li class=md-nav__item> <a href=../../guides/testing/ class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> <li class=md-nav__item> <a href=../../guides/diagnostics/ class=md-nav__link> <span class=md-ellipsis> Diagnostics </span> </a> </li> <li class=md-nav__item> <a href=../../guides/advanced/ class=md-nav__link> <span class=md-ellipsis> Advanced Topics </span> </a> </li> <li class=md-nav__item> <a href=../../guides/migration-guide/ class=md-nav__link> <span class=md-ellipsis> Migration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/design-and-architecture/ class=md-nav__link> <span class=md-ellipsis> Design & Architecture </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/comparisons/ class=md-nav__link> <span class=md-ellipsis> Comparisons </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/performance/ class=md-nav__link> <span class=md-ellipsis> Performance </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> Advanced </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> Advanced </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../advanced/emit-shorthands/ class=md-nav__link> <span class=md-ellipsis> Emit Shorthands </span> </a> </li> <li class=md-nav__item> <a href=../../advanced/message-bus-providers/ class=md-nav__link> <span class=md-ellipsis> Message Bus Providers </span> </a> </li> <li class=md-nav__item> <a href=../../advanced/registration-builders/ class=md-nav__link> <span class=md-ellipsis> Registration Builders </span> </a> </li> <li class=md-nav__item> <a href=../../advanced/runtime-configuration/ class=md-nav__link> <span class=md-ellipsis> Runtime Configuration </span> </a> </li> <li class=md-nav__item> <a href=../../advanced/string-messages/ class=md-nav__link> <span class=md-ellipsis> String Messages </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../integrations/ class="md-nav__link "> <span class=md-ellipsis> Integrations </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Integrations </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../integrations/vcontainer/ class=md-nav__link> <span class=md-ellipsis> VContainer </span> </a> </li> <li class=md-nav__item> <a href=../../integrations/zenject/ class=md-nav__link> <span class=md-ellipsis> Zenject </span> </a> </li> <li class=md-nav__item> <a href=../../integrations/reflex/ class=md-nav__link> <span class=md-ellipsis> Reflex </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_8> <label class=md-nav__link for=__nav_8 id=__nav_8_label tabindex=0> <span class=md-ellipsis> Examples </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8> <span class="md-nav__icon md-icon"></span> Examples </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../examples/end-to-end/ class=md-nav__link> <span class=md-ellipsis> End-to-End </span> </a> </li> <li class=md-nav__item> <a href=../../examples/end-to-end-scene-transitions/ class=md-nav__link> <span class=md-ellipsis> Scene Transitions </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_9> <label class=md-nav__link for=__nav_9 id=__nav_9_label tabindex=0> <span class=md-ellipsis> Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_9_label aria-expanded=false> <label class=md-nav__title for=__nav_9> <span class="md-nav__icon md-icon"></span> Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../reference/reference/ class=md-nav__link> <span class=md-ellipsis> API Reference (Practical) </span> </a> </li> <li class=md-nav__item> <a href=../../reference/quick-reference/ class=md-nav__link> <span class=md-ellipsis> Quick Reference </span> </a> </li> <li class=md-nav__item> <a href=../../reference/helpers/ class=md-nav__link> <span class=md-ellipsis> Helpers </span> </a> </li> <li class=md-nav__item> <a href=../../reference/faq/ class=md-nav__link> <span class=md-ellipsis> FAQ </span> </a> </li> <li class=md-nav__item> <a href=../../reference/glossary/ class=md-nav__link> <span class=md-ellipsis> Glossary </span> </a> </li> <li class=md-nav__item> <a href=../../reference/troubleshooting/ class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> </li> <li class=md-nav__item> <a href=../../reference/compatibility/ class=md-nav__link> <span class=md-ellipsis> Compatibility </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#snapshot-semantics-frozen-listener-lists class=md-nav__link> <span class=md-ellipsis> Snapshot Semantics: Frozen Listener Lists </span> </a> <nav class=md-nav aria-label="Snapshot Semantics: Frozen Listener Lists"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#what-this-means class=md-nav__link> <span class=md-ellipsis> What this means </span> </a> <nav class=md-nav aria-label="What this means"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example class=md-nav__link> <span class=md-ellipsis> Example </span> </a> <nav class=md-nav aria-label=Example> <ul class=md-nav__list> <li class=md-nav__item> <a href=#why-this-matters class=md-nav__link> <span class=md-ellipsis> Why this matters </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#statebased-message-cancellation class=md-nav__link> <span class=md-ellipsis> State‑Based Message Cancellation </span> </a> </li> <li class=md-nav__item> <a href=#value-clamping-and-normalization class=md-nav__link> <span class=md-ellipsis> Value Clamping and Normalization </span> </a> </li> <li class=md-nav__item> <a href=#permission-and-authorization-checks class=md-nav__link> <span class=md-ellipsis> Permission and Authorization Checks </span> </a> </li> <li class=md-nav__item> <a href=#message-enrichment-and-context-addition class=md-nav__link> <span class=md-ellipsis> Message Enrichment and Context Addition </span> </a> </li> <li class=md-nav__item> <a href=#cooldown-and-rate-limiting class=md-nav__link> <span class=md-ellipsis> Cooldown and Rate Limiting </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <nav class=md-path aria-label=Navigation> <ol class=md-path__list> <li class=md-path__item> <a href=../.. class=md-path__link> <span class=md-ellipsis> Home </span> </a> </li> <li class=md-path__item> <a href=../message-types/ class=md-path__link> <span class=md-ellipsis> Concepts </span> </a> </li> </ol> </nav> <article class="md-content__inner md-typeset"> <a href=https://github.com/wallstop/DxMessaging/edit/master/docs/concepts/interceptors-and-ordering.md title="Edit this page" class="md-content__button md-icon" rel=edit> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg> </a> <a href=https://github.com/wallstop/DxMessaging/raw/master/docs/concepts/interceptors-and-ordering.md title="View source of this page" class="md-content__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg> </a> <h1 id=interceptors-ordering-and-postprocessing>Interceptors, Ordering, and Post‑Processing<a class=headerlink href=#interceptors-ordering-and-postprocessing title="Anchor link to this section">&para;</a></h1> <h2 id=snapshot-semantics-frozen-listener-lists>Snapshot Semantics: Frozen Listener Lists<a class=headerlink href=#snapshot-semantics-frozen-listener-lists title="Anchor link to this section">&para;</a></h2> <p><strong>IMPORTANT:</strong> DxMessaging uses snapshot semantics for message emissions. When a message is emitted, the system creates a snapshot of all current listeners (interceptors, handlers, and post-processors). This snapshot is "frozen" for the duration of that emission.</p> <h3 id=what-this-means>What this means<a class=headerlink href=#what-this-means title="Anchor link to this section">&para;</a></h3> <ul> <li>Listeners added during emission will <strong>not</strong> be invoked for the current message</li> <li>Newly registered listeners will only become active starting with the <strong>next</strong> emission</li> <li>Listeners removed during emission will still complete their execution for the current message</li> <li>This behavior applies to all registration types: handlers, interceptors, and post-processors</li> <li>This behavior applies to all message categories: Untargeted, Targeted, and Broadcast</li> </ul> <h4 id=example>Example<a class=headerlink href=#example title="Anchor link to this section">&para;</a></h4> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1>// Handler adds a new listener during emission</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>token</span><span class=p>.</span><span class=n>RegisterUntargeted</span><span class=o>&lt;</span><span class=n>GameEvent</span><span class=o>&gt;</span><span class=p>(</span><span class=n>msg</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=p>{</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=w> </span><span class=n>DoWork</span><span class=p>();</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=w> </span><span class=c1>// This new listener will NOT run for this emission</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>token</span><span class=p>.</span><span class=n>RegisterUntargeted</span><span class=o>&lt;</span><span class=n>GameEvent</span><span class=o>&gt;</span><span class=p>(</span><span class=n>newMsg</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=n>ProcessLater</span><span class=p>());</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a><span class=p>});</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=c1>// First emission: only the original handler runs</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=kt>var</span><span class=w> </span><span class=n>firstEvent</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>GameEvent</span><span class=p>();</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a><span class=n>firstEvent</span><span class=p>.</span><span class=n>Emit</span><span class=p>();</span><span class=w> </span><span class=c1>// DoWork() executes, ProcessLater() does NOT</span>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a><span class=c1>// Second emission: both handlers run</span>
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=kt>var</span><span class=w> </span><span class=n>secondEvent</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>GameEvent</span><span class=p>();</span>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a><span class=n>secondEvent</span><span class=p>.</span><span class=n>Emit</span><span class=p>();</span><span class=w> </span><span class=c1>// Both DoWork() and ProcessLater() execute</span>
15
+ </span></code></pre></div> <h5 id=why-this-matters>Why this matters<a class=headerlink href=#why-this-matters title="Anchor link to this section">&para;</a></h5> <ul> <li>Prevents infinite loops (a handler that registers itself won't recurse)</li> <li>Guarantees predictable execution order</li> <li>Ensures all listeners see a consistent view of the registration state</li> <li>Makes debugging and reasoning about message flow easier</li> </ul> <p>This snapshot behavior is extensively tested in the <a href=https://github.com/wallstop/DxMessaging/blob/master/Tests/Runtime/Core/MutationDuringEmissionTests.cs>Mutation During Emission tests</a>.</p> <hr> <p>Execution order (precise)</p> <p>DxMessaging runs emissions through a fixed pipeline. This section documents the exact order used at runtime for every category. Unless otherwise noted:</p> <ul> <li>Priority: lower numbers run earlier.</li> <li>Same priority: registration order is preserved.</li> <li>Within a priority group, fast handlers (by‑ref) run before action handlers.</li> <li>Each category (Untargeted, Targeted, Broadcast) has its own pipeline.</li> </ul> <p>Untargeted pipeline</p> <ol> <li>Interceptors for <code>T</code> (ascending priority; within priority by registration order)</li> <li>Global Accept‑All Untargeted handlers (in the MessageHandler that registered them)</li> <li>Untargeted handlers for <code>T</code> (ascending priority; within priority by registration order)</li> <li>Untargeted Post‑Processors for <code>T</code> (ascending priority; within priority by registration order)</li> </ol> <p>Targeted pipeline</p> <ol> <li>Interceptors for <code>T</code> (ascending priority)</li> <li>Global Accept‑All Targeted handlers (receive <code>(target, ITargetedMessage)</code>)</li> <li>Targeted handlers for <code>T</code> registered for the specific <code>target</code></li> <li>Targeted‑Without‑Targeting handlers for <code>T</code> (listen for all targets)</li> <li>Targeted Post‑Processors for <code>T</code> registered for the specific <code>target</code></li> <li>Targeted‑Without‑Targeting Post‑Processors for <code>T</code> (listen for all targets)</li> </ol> <p>Broadcast pipeline</p> <ol> <li>Interceptors for <code>T</code> (ascending priority)</li> <li>Global Accept‑All Broadcast handlers (receive <code>(source, IBroadcastMessage)</code>)</li> <li>Broadcast handlers for <code>T</code> registered for the specific <code>source</code></li> <li>Broadcast‑Without‑Source handlers for <code>T</code> (listen for all sources)</li> <li>Broadcast Post‑Processors for <code>T</code> registered for the specific <code>source</code></li> <li>Broadcast‑Without‑Source Post‑Processors for <code>T</code> (listen for all sources)</li> </ol> <p>Notes on handler groups</p> <ul> <li>Fast vs Action: At a given priority, fast handlers (by‑ref delegates) are invoked before action handlers, and within each group the registration order is preserved.</li> <li>“Without Targeting/Source” registrations run in their own groups and do not replace the specific target/source groups.</li> </ul> <p>Visual overview</p> <pre class=mermaid><code>%%{init: {'theme': 'neutral'}}%%
16
+ flowchart LR
17
+ subgraph Untargeted["Untargeted Messages"]
18
+ direction TB
19
+ U1["Interceptors(T)"] --&gt; U2[Global Accept‑All Untargeted]
20
+ U2 --&gt; U3["Handlers(T)"]
21
+ U3 --&gt; U4["Post‑Processors(T)"]
22
+ end
23
+
24
+ subgraph Targeted["Targeted Messages"]
25
+ direction TB
26
+ T1["Interceptors(T)"] --&gt; T2[Global Accept‑All Targeted]
27
+ T2 --&gt; T3["Handlers(T) @ target"]
28
+ T3 --&gt; T4["Handlers(T) (All Targets)"]
29
+ T4 --&gt; T5["Post‑Processors(T) @ target"]
30
+ T5 --&gt; T6["Post‑Processors(T) (All Targets)"]
31
+ end
32
+
33
+ subgraph Broadcast["Broadcast Messages"]
34
+ direction TB
35
+ B1["Interceptors(T)"] --&gt; B2[Global Accept‑All Broadcast]
36
+ B2 --&gt; B3["Handlers(T) @ source"]
37
+ B3 --&gt; B4["Handlers(T) (All Sources)"]
38
+ B4 --&gt; B5["Post‑Processors(T) @ source"]
39
+ B5 --&gt; B6["Post‑Processors(T) (All Sources)"]
40
+ end
41
+
42
+ classDef neutral stroke-width:2px
43
+ class Untargeted,Targeted,Broadcast neutral
44
+ classDef warning stroke-width:2px
45
+ class U1,T1,B1 warning
46
+ classDef accent stroke-width:2px
47
+ class U2,T2,B2 accent
48
+ classDef primary stroke-width:2px
49
+ class U3,T3,T4,B3,B4 primary
50
+ classDef success stroke-width:2px
51
+ class U4,T5,T6,B5,B6 success</code></pre> <p>Example sequence</p> <pre class=mermaid><code>%%{init: {'theme': 'neutral'}}%%
52
+ sequenceDiagram
53
+ participant P as Producer
54
+ participant I as Interceptor(s)
55
+ participant G as Global Accept‑All
56
+ participant H as Handler(s)
57
+ participant PP as Post‑Processor(s)
58
+ P-&gt;&gt;I: emit(ref message)
59
+ I--&gt;&gt;P: false? cancel : continue
60
+ I-&gt;&gt;G: message (category‑specific)
61
+ G-&gt;&gt;H: message
62
+ H-&gt;&gt;PP: after all handlers complete</code></pre> <p>Interceptors</p> <ul> <li>Mutate or cancel messages before any handler runs. Return <code>false</code> to cancel.</li> <li>Define per category: <code>RegisterUntargetedInterceptor&lt;T&gt;</code>, <code>RegisterTargetedInterceptor&lt;T&gt;</code>, <code>RegisterBroadcastInterceptor&lt;T&gt;</code>.</li> <li>Useful for validation, normalization, enrichment, and short‑circuiting.</li> </ul> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span><span class=w> </span><span class=c1>// MessageHandler, InstanceId</span>
63
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span><span class=w> </span><span class=c1>// IMessageBus</span>
64
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a>
65
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=c1>// Cancel &lt;=0 damage and clamp high values</span>
66
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
67
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterTargetedInterceptor</span><span class=o>&lt;</span><span class=n>TookDamage</span><span class=o>&gt;</span><span class=p>(</span>
68
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>InstanceId</span><span class=w> </span><span class=n>target</span><span class=p>,</span><span class=w> </span><span class=k>ref</span><span class=w> </span><span class=n>TookDamage</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
69
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a><span class=w> </span><span class=p>{</span>
70
+ </span><span id=__span-1-9><a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a><span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>amount</span><span class=w> </span><span class=o>&lt;=</span><span class=w> </span><span class=mi>0</span><span class=p>)</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>false</span><span class=p>;</span>
71
+ </span><span id=__span-1-10><a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>TookDamage</span><span class=p>(</span><span class=n>Math</span><span class=p>.</span><span class=n>Min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>amount</span><span class=p>,</span><span class=w> </span><span class=mi>999</span><span class=p>));</span>
72
+ </span><span id=__span-1-11><a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
73
+ </span><span id=__span-1-12><a id=__codelineno-1-12 name=__codelineno-1-12 href=#__codelineno-1-12></a><span class=w> </span><span class=p>},</span>
74
+ </span><span id=__span-1-13><a id=__codelineno-1-13 name=__codelineno-1-13 href=#__codelineno-1-13></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=mi>0</span>
75
+ </span><span id=__span-1-14><a id=__codelineno-1-14 name=__codelineno-1-14 href=#__codelineno-1-14></a><span class=p>);</span>
76
+ </span></code></pre></div> <p>Real‑World Use Cases</p> <h4 id=statebased-message-cancellation>State‑Based Message Cancellation<a class=headerlink href=#statebased-message-cancellation title="Anchor link to this section">&para;</a></h4> <p>Prevent UI messages from being processed based on current UI state:</p> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span>
77
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span>
78
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a>
79
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=na>[DxUntargetedMessage]</span>
80
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=na>[DxAutoConstructor]</span>
81
+ </span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>OpenMenu</span>
82
+ </span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>{</span>
83
+ </span><span id=__span-2-8><a id=__codelineno-2-8 name=__codelineno-2-8 href=#__codelineno-2-8></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>menuName</span><span class=p>;</span>
84
+ </span><span id=__span-2-9><a id=__codelineno-2-9 name=__codelineno-2-9 href=#__codelineno-2-9></a><span class=p>}</span>
85
+ </span><span id=__span-2-10><a id=__codelineno-2-10 name=__codelineno-2-10 href=#__codelineno-2-10></a>
86
+ </span><span id=__span-2-11><a id=__codelineno-2-11 name=__codelineno-2-11 href=#__codelineno-2-11></a><span class=na>[DxUntargetedMessage]</span>
87
+ </span><span id=__span-2-12><a id=__codelineno-2-12 name=__codelineno-2-12 href=#__codelineno-2-12></a><span class=na>[DxAutoConstructor]</span>
88
+ </span><span id=__span-2-13><a id=__codelineno-2-13 name=__codelineno-2-13 href=#__codelineno-2-13></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>ShowDialog</span>
89
+ </span><span id=__span-2-14><a id=__codelineno-2-14 name=__codelineno-2-14 href=#__codelineno-2-14></a><span class=p>{</span>
90
+ </span><span id=__span-2-15><a id=__codelineno-2-15 name=__codelineno-2-15 href=#__codelineno-2-15></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>dialogText</span><span class=p>;</span>
91
+ </span><span id=__span-2-16><a id=__codelineno-2-16 name=__codelineno-2-16 href=#__codelineno-2-16></a><span class=p>}</span>
92
+ </span><span id=__span-2-17><a id=__codelineno-2-17 name=__codelineno-2-17 href=#__codelineno-2-17></a>
93
+ </span><span id=__span-2-18><a id=__codelineno-2-18 name=__codelineno-2-18 href=#__codelineno-2-18></a><span class=k>public</span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>UIStateManager</span>
94
+ </span><span id=__span-2-19><a id=__codelineno-2-19 name=__codelineno-2-19 href=#__codelineno-2-19></a><span class=p>{</span>
95
+ </span><span id=__span-2-20><a id=__codelineno-2-20 name=__codelineno-2-20 href=#__codelineno-2-20></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=kt>bool</span><span class=w> </span><span class=n>_isInCutscene</span><span class=p>;</span>
96
+ </span><span id=__span-2-21><a id=__codelineno-2-21 name=__codelineno-2-21 href=#__codelineno-2-21></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=kt>bool</span><span class=w> </span><span class=n>_isPaused</span><span class=p>;</span>
97
+ </span><span id=__span-2-22><a id=__codelineno-2-22 name=__codelineno-2-22 href=#__codelineno-2-22></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=kt>bool</span><span class=w> </span><span class=n>_isLoading</span><span class=p>;</span>
98
+ </span><span id=__span-2-23><a id=__codelineno-2-23 name=__codelineno-2-23 href=#__codelineno-2-23></a>
99
+ </span><span id=__span-2-24><a id=__codelineno-2-24 name=__codelineno-2-24 href=#__codelineno-2-24></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>RegisterInterceptors</span><span class=p>()</span>
100
+ </span><span id=__span-2-25><a id=__codelineno-2-25 name=__codelineno-2-25 href=#__codelineno-2-25></a><span class=w> </span><span class=p>{</span>
101
+ </span><span id=__span-2-26><a id=__codelineno-2-26 name=__codelineno-2-26 href=#__codelineno-2-26></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
102
+ </span><span id=__span-2-27><a id=__codelineno-2-27 name=__codelineno-2-27 href=#__codelineno-2-27></a>
103
+ </span><span id=__span-2-28><a id=__codelineno-2-28 name=__codelineno-2-28 href=#__codelineno-2-28></a><span class=w> </span><span class=c1>// Block all UI interactions during cutscenes, loading, or when paused</span>
104
+ </span><span id=__span-2-29><a id=__codelineno-2-29 name=__codelineno-2-29 href=#__codelineno-2-29></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterUntargetedInterceptor</span><span class=o>&lt;</span><span class=n>OpenMenu</span><span class=o>&gt;</span><span class=p>(</span>
105
+ </span><span id=__span-2-30><a id=__codelineno-2-30 name=__codelineno-2-30 href=#__codelineno-2-30></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>OpenMenu</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=o>!</span><span class=n>_isInCutscene</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=o>!</span><span class=n>_isLoading</span><span class=p>,</span>
106
+ </span><span id=__span-2-31><a id=__codelineno-2-31 name=__codelineno-2-31 href=#__codelineno-2-31></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>100</span><span class=w> </span><span class=c1>// Run early</span>
107
+ </span><span id=__span-2-32><a id=__codelineno-2-32 name=__codelineno-2-32 href=#__codelineno-2-32></a><span class=w> </span><span class=p>);</span>
108
+ </span><span id=__span-2-33><a id=__codelineno-2-33 name=__codelineno-2-33 href=#__codelineno-2-33></a>
109
+ </span><span id=__span-2-34><a id=__codelineno-2-34 name=__codelineno-2-34 href=#__codelineno-2-34></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterUntargetedInterceptor</span><span class=o>&lt;</span><span class=n>ShowDialog</span><span class=o>&gt;</span><span class=p>(</span>
110
+ </span><span id=__span-2-35><a id=__codelineno-2-35 name=__codelineno-2-35 href=#__codelineno-2-35></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>ShowDialog</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=o>!</span><span class=n>_isInCutscene</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=o>!</span><span class=n>_isPaused</span><span class=p>,</span>
111
+ </span><span id=__span-2-36><a id=__codelineno-2-36 name=__codelineno-2-36 href=#__codelineno-2-36></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>100</span>
112
+ </span><span id=__span-2-37><a id=__codelineno-2-37 name=__codelineno-2-37 href=#__codelineno-2-37></a><span class=w> </span><span class=p>);</span>
113
+ </span><span id=__span-2-38><a id=__codelineno-2-38 name=__codelineno-2-38 href=#__codelineno-2-38></a><span class=w> </span><span class=p>}</span>
114
+ </span><span id=__span-2-39><a id=__codelineno-2-39 name=__codelineno-2-39 href=#__codelineno-2-39></a>
115
+ </span><span id=__span-2-40><a id=__codelineno-2-40 name=__codelineno-2-40 href=#__codelineno-2-40></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>EnterCutscene</span><span class=p>()</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=n>_isInCutscene</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
116
+ </span><span id=__span-2-41><a id=__codelineno-2-41 name=__codelineno-2-41 href=#__codelineno-2-41></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>ExitCutscene</span><span class=p>()</span><span class=w> </span><span class=o>=&gt;</span><span class=w> </span><span class=n>_isInCutscene</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>false</span><span class=p>;</span>
117
+ </span><span id=__span-2-42><a id=__codelineno-2-42 name=__codelineno-2-42 href=#__codelineno-2-42></a><span class=p>}</span>
118
+ </span><span id=__span-2-43><a id=__codelineno-2-43 name=__codelineno-2-43 href=#__codelineno-2-43></a>
119
+ </span><span id=__span-2-44><a id=__codelineno-2-44 name=__codelineno-2-44 href=#__codelineno-2-44></a><span class=c1>// Usage: UI messages automatically blocked during cutscenes</span>
120
+ </span><span id=__span-2-45><a id=__codelineno-2-45 name=__codelineno-2-45 href=#__codelineno-2-45></a><span class=kt>var</span><span class=w> </span><span class=n>uiManager</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>UIStateManager</span><span class=p>();</span>
121
+ </span><span id=__span-2-46><a id=__codelineno-2-46 name=__codelineno-2-46 href=#__codelineno-2-46></a><span class=n>uiManager</span><span class=p>.</span><span class=n>RegisterInterceptors</span><span class=p>();</span>
122
+ </span><span id=__span-2-47><a id=__codelineno-2-47 name=__codelineno-2-47 href=#__codelineno-2-47></a><span class=n>uiManager</span><span class=p>.</span><span class=n>EnterCutscene</span><span class=p>();</span>
123
+ </span><span id=__span-2-48><a id=__codelineno-2-48 name=__codelineno-2-48 href=#__codelineno-2-48></a>
124
+ </span><span id=__span-2-49><a id=__codelineno-2-49 name=__codelineno-2-49 href=#__codelineno-2-49></a><span class=kt>var</span><span class=w> </span><span class=n>openMenu</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>OpenMenu</span><span class=p>(</span><span class=s>&quot;inventory&quot;</span><span class=p>);</span>
125
+ </span><span id=__span-2-50><a id=__codelineno-2-50 name=__codelineno-2-50 href=#__codelineno-2-50></a><span class=n>openMenu</span><span class=p>.</span><span class=n>Emit</span><span class=p>();</span><span class=w> </span><span class=c1>// Cancelled by interceptor</span>
126
+ </span><span id=__span-2-51><a id=__codelineno-2-51 name=__codelineno-2-51 href=#__codelineno-2-51></a><span class=kt>var</span><span class=w> </span><span class=n>showDialog</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>ShowDialog</span><span class=p>(</span><span class=s>&quot;Hello!&quot;</span><span class=p>);</span>
127
+ </span><span id=__span-2-52><a id=__codelineno-2-52 name=__codelineno-2-52 href=#__codelineno-2-52></a><span class=n>showDialog</span><span class=p>.</span><span class=n>Emit</span><span class=p>();</span><span class=w> </span><span class=c1>// Cancelled by interceptor</span>
128
+ </span></code></pre></div> <h4 id=value-clamping-and-normalization>Value Clamping and Normalization<a class=headerlink href=#value-clamping-and-normalization title="Anchor link to this section">&para;</a></h4> <p>Ensure message data stays within valid ranges:</p> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span>
129
+ </span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span>
130
+ </span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a><span class=k>using</span><span class=w> </span><span class=nn>UnityEngine</span><span class=p>;</span>
131
+ </span><span id=__span-3-4><a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a>
132
+ </span><span id=__span-3-5><a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a><span class=na>[DxUntargetedMessage]</span>
133
+ </span><span id=__span-3-6><a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a><span class=na>[DxAutoConstructor]</span>
134
+ </span><span id=__span-3-7><a id=__codelineno-3-7 name=__codelineno-3-7 href=#__codelineno-3-7></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>MovementInput</span>
135
+ </span><span id=__span-3-8><a id=__codelineno-3-8 name=__codelineno-3-8 href=#__codelineno-3-8></a><span class=p>{</span>
136
+ </span><span id=__span-3-9><a id=__codelineno-3-9 name=__codelineno-3-9 href=#__codelineno-3-9></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=n>Vector2</span><span class=w> </span><span class=n>direction</span><span class=p>;</span>
137
+ </span><span id=__span-3-10><a id=__codelineno-3-10 name=__codelineno-3-10 href=#__codelineno-3-10></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>float</span><span class=w> </span><span class=n>speed</span><span class=p>;</span>
138
+ </span><span id=__span-3-11><a id=__codelineno-3-11 name=__codelineno-3-11 href=#__codelineno-3-11></a><span class=p>}</span>
139
+ </span><span id=__span-3-12><a id=__codelineno-3-12 name=__codelineno-3-12 href=#__codelineno-3-12></a>
140
+ </span><span id=__span-3-13><a id=__codelineno-3-13 name=__codelineno-3-13 href=#__codelineno-3-13></a><span class=k>public</span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>InputNormalizer</span>
141
+ </span><span id=__span-3-14><a id=__codelineno-3-14 name=__codelineno-3-14 href=#__codelineno-3-14></a><span class=p>{</span>
142
+ </span><span id=__span-3-15><a id=__codelineno-3-15 name=__codelineno-3-15 href=#__codelineno-3-15></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>RegisterInterceptors</span><span class=p>()</span>
143
+ </span><span id=__span-3-16><a id=__codelineno-3-16 name=__codelineno-3-16 href=#__codelineno-3-16></a><span class=w> </span><span class=p>{</span>
144
+ </span><span id=__span-3-17><a id=__codelineno-3-17 name=__codelineno-3-17 href=#__codelineno-3-17></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
145
+ </span><span id=__span-3-18><a id=__codelineno-3-18 name=__codelineno-3-18 href=#__codelineno-3-18></a>
146
+ </span><span id=__span-3-19><a id=__codelineno-3-19 name=__codelineno-3-19 href=#__codelineno-3-19></a><span class=w> </span><span class=c1>// Normalize and clamp movement input</span>
147
+ </span><span id=__span-3-20><a id=__codelineno-3-20 name=__codelineno-3-20 href=#__codelineno-3-20></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterUntargetedInterceptor</span><span class=o>&lt;</span><span class=n>MovementInput</span><span class=o>&gt;</span><span class=p>(</span>
148
+ </span><span id=__span-3-21><a id=__codelineno-3-21 name=__codelineno-3-21 href=#__codelineno-3-21></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>MovementInput</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
149
+ </span><span id=__span-3-22><a id=__codelineno-3-22 name=__codelineno-3-22 href=#__codelineno-3-22></a><span class=w> </span><span class=p>{</span>
150
+ </span><span id=__span-3-23><a id=__codelineno-3-23 name=__codelineno-3-23 href=#__codelineno-3-23></a><span class=w> </span><span class=c1>// Normalize direction vector</span>
151
+ </span><span id=__span-3-24><a id=__codelineno-3-24 name=__codelineno-3-24 href=#__codelineno-3-24></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>normalized</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=n>direction</span><span class=p>.</span><span class=n>normalized</span><span class=p>;</span>
152
+ </span><span id=__span-3-25><a id=__codelineno-3-25 name=__codelineno-3-25 href=#__codelineno-3-25></a>
153
+ </span><span id=__span-3-26><a id=__codelineno-3-26 name=__codelineno-3-26 href=#__codelineno-3-26></a><span class=w> </span><span class=c1>// Clamp speed to valid range</span>
154
+ </span><span id=__span-3-27><a id=__codelineno-3-27 name=__codelineno-3-27 href=#__codelineno-3-27></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>clampedSpeed</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Mathf</span><span class=p>.</span><span class=n>Clamp</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>speed</span><span class=p>,</span><span class=w> </span><span class=mf>0f</span><span class=p>,</span><span class=w> </span><span class=mf>10f</span><span class=p>);</span>
155
+ </span><span id=__span-3-28><a id=__codelineno-3-28 name=__codelineno-3-28 href=#__codelineno-3-28></a>
156
+ </span><span id=__span-3-29><a id=__codelineno-3-29 name=__codelineno-3-29 href=#__codelineno-3-29></a><span class=w> </span><span class=c1>// Mutate the message with cleaned values</span>
157
+ </span><span id=__span-3-30><a id=__codelineno-3-30 name=__codelineno-3-30 href=#__codelineno-3-30></a><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>MovementInput</span><span class=p>(</span><span class=n>normalized</span><span class=p>,</span><span class=w> </span><span class=n>clampedSpeed</span><span class=p>);</span>
158
+ </span><span id=__span-3-31><a id=__codelineno-3-31 name=__codelineno-3-31 href=#__codelineno-3-31></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
159
+ </span><span id=__span-3-32><a id=__codelineno-3-32 name=__codelineno-3-32 href=#__codelineno-3-32></a><span class=w> </span><span class=p>},</span>
160
+ </span><span id=__span-3-33><a id=__codelineno-3-33 name=__codelineno-3-33 href=#__codelineno-3-33></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=mi>0</span>
161
+ </span><span id=__span-3-34><a id=__codelineno-3-34 name=__codelineno-3-34 href=#__codelineno-3-34></a><span class=w> </span><span class=p>);</span>
162
+ </span><span id=__span-3-35><a id=__codelineno-3-35 name=__codelineno-3-35 href=#__codelineno-3-35></a><span class=w> </span><span class=p>}</span>
163
+ </span><span id=__span-3-36><a id=__codelineno-3-36 name=__codelineno-3-36 href=#__codelineno-3-36></a><span class=p>}</span>
164
+ </span><span id=__span-3-37><a id=__codelineno-3-37 name=__codelineno-3-37 href=#__codelineno-3-37></a>
165
+ </span><span id=__span-3-38><a id=__codelineno-3-38 name=__codelineno-3-38 href=#__codelineno-3-38></a><span class=c1>// Usage: all movement input is automatically normalized</span>
166
+ </span><span id=__span-3-39><a id=__codelineno-3-39 name=__codelineno-3-39 href=#__codelineno-3-39></a><span class=kt>var</span><span class=w> </span><span class=n>normalizer</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>InputNormalizer</span><span class=p>();</span>
167
+ </span><span id=__span-3-40><a id=__codelineno-3-40 name=__codelineno-3-40 href=#__codelineno-3-40></a><span class=n>normalizer</span><span class=p>.</span><span class=n>RegisterInterceptors</span><span class=p>();</span>
168
+ </span><span id=__span-3-41><a id=__codelineno-3-41 name=__codelineno-3-41 href=#__codelineno-3-41></a>
169
+ </span><span id=__span-3-42><a id=__codelineno-3-42 name=__codelineno-3-42 href=#__codelineno-3-42></a><span class=c1>// Even invalid input gets cleaned</span>
170
+ </span><span id=__span-3-43><a id=__codelineno-3-43 name=__codelineno-3-43 href=#__codelineno-3-43></a><span class=kt>var</span><span class=w> </span><span class=n>input</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>MovementInput</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>Vector2</span><span class=p>(</span><span class=mi>100</span><span class=p>,</span><span class=w> </span><span class=mi>200</span><span class=p>),</span><span class=w> </span><span class=mf>9999f</span><span class=p>);</span>
171
+ </span><span id=__span-3-44><a id=__codelineno-3-44 name=__codelineno-3-44 href=#__codelineno-3-44></a><span class=n>input</span><span class=p>.</span><span class=n>Emit</span><span class=p>();</span>
172
+ </span><span id=__span-3-45><a id=__codelineno-3-45 name=__codelineno-3-45 href=#__codelineno-3-45></a><span class=c1>// Handlers receive: direction=(0.45, 0.89), speed=10.0</span>
173
+ </span></code></pre></div> <h4 id=permission-and-authorization-checks>Permission and Authorization Checks<a class=headerlink href=#permission-and-authorization-checks title="Anchor link to this section">&para;</a></h4> <p>Block messages that violate game rules or permissions:</p> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span>
174
+ </span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span>
175
+ </span><span id=__span-4-3><a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a>
176
+ </span><span id=__span-4-4><a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=na>[DxTargetedMessage]</span>
177
+ </span><span id=__span-4-5><a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=na>[DxAutoConstructor]</span>
178
+ </span><span id=__span-4-6><a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>SpendCurrency</span>
179
+ </span><span id=__span-4-7><a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=p>{</span>
180
+ </span><span id=__span-4-8><a id=__codelineno-4-8 name=__codelineno-4-8 href=#__codelineno-4-8></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>amount</span><span class=p>;</span>
181
+ </span><span id=__span-4-9><a id=__codelineno-4-9 name=__codelineno-4-9 href=#__codelineno-4-9></a><span class=p>}</span>
182
+ </span><span id=__span-4-10><a id=__codelineno-4-10 name=__codelineno-4-10 href=#__codelineno-4-10></a>
183
+ </span><span id=__span-4-11><a id=__codelineno-4-11 name=__codelineno-4-11 href=#__codelineno-4-11></a><span class=na>[DxTargetedMessage]</span>
184
+ </span><span id=__span-4-12><a id=__codelineno-4-12 name=__codelineno-4-12 href=#__codelineno-4-12></a><span class=na>[DxAutoConstructor]</span>
185
+ </span><span id=__span-4-13><a id=__codelineno-4-13 name=__codelineno-4-13 href=#__codelineno-4-13></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>UnlockAchievement</span>
186
+ </span><span id=__span-4-14><a id=__codelineno-4-14 name=__codelineno-4-14 href=#__codelineno-4-14></a><span class=p>{</span>
187
+ </span><span id=__span-4-15><a id=__codelineno-4-15 name=__codelineno-4-15 href=#__codelineno-4-15></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>achievementId</span><span class=p>;</span>
188
+ </span><span id=__span-4-16><a id=__codelineno-4-16 name=__codelineno-4-16 href=#__codelineno-4-16></a><span class=p>}</span>
189
+ </span><span id=__span-4-17><a id=__codelineno-4-17 name=__codelineno-4-17 href=#__codelineno-4-17></a>
190
+ </span><span id=__span-4-18><a id=__codelineno-4-18 name=__codelineno-4-18 href=#__codelineno-4-18></a><span class=k>public</span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>PermissionSystem</span>
191
+ </span><span id=__span-4-19><a id=__codelineno-4-19 name=__codelineno-4-19 href=#__codelineno-4-19></a><span class=p>{</span>
192
+ </span><span id=__span-4-20><a id=__codelineno-4-20 name=__codelineno-4-20 href=#__codelineno-4-20></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=n>IPlayerDataService</span><span class=w> </span><span class=n>_playerData</span><span class=p>;</span>
193
+ </span><span id=__span-4-21><a id=__codelineno-4-21 name=__codelineno-4-21 href=#__codelineno-4-21></a>
194
+ </span><span id=__span-4-22><a id=__codelineno-4-22 name=__codelineno-4-22 href=#__codelineno-4-22></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=nf>PermissionSystem</span><span class=p>(</span><span class=n>IPlayerDataService</span><span class=w> </span><span class=n>playerData</span><span class=p>)</span>
195
+ </span><span id=__span-4-23><a id=__codelineno-4-23 name=__codelineno-4-23 href=#__codelineno-4-23></a><span class=w> </span><span class=p>{</span>
196
+ </span><span id=__span-4-24><a id=__codelineno-4-24 name=__codelineno-4-24 href=#__codelineno-4-24></a><span class=w> </span><span class=n>_playerData</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>playerData</span><span class=p>;</span>
197
+ </span><span id=__span-4-25><a id=__codelineno-4-25 name=__codelineno-4-25 href=#__codelineno-4-25></a><span class=w> </span><span class=p>}</span>
198
+ </span><span id=__span-4-26><a id=__codelineno-4-26 name=__codelineno-4-26 href=#__codelineno-4-26></a>
199
+ </span><span id=__span-4-27><a id=__codelineno-4-27 name=__codelineno-4-27 href=#__codelineno-4-27></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>RegisterInterceptors</span><span class=p>()</span>
200
+ </span><span id=__span-4-28><a id=__codelineno-4-28 name=__codelineno-4-28 href=#__codelineno-4-28></a><span class=w> </span><span class=p>{</span>
201
+ </span><span id=__span-4-29><a id=__codelineno-4-29 name=__codelineno-4-29 href=#__codelineno-4-29></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
202
+ </span><span id=__span-4-30><a id=__codelineno-4-30 name=__codelineno-4-30 href=#__codelineno-4-30></a>
203
+ </span><span id=__span-4-31><a id=__codelineno-4-31 name=__codelineno-4-31 href=#__codelineno-4-31></a><span class=w> </span><span class=c1>// Block currency spending if player doesn&#39;t have enough</span>
204
+ </span><span id=__span-4-32><a id=__codelineno-4-32 name=__codelineno-4-32 href=#__codelineno-4-32></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterTargetedInterceptor</span><span class=o>&lt;</span><span class=n>SpendCurrency</span><span class=o>&gt;</span><span class=p>(</span>
205
+ </span><span id=__span-4-33><a id=__codelineno-4-33 name=__codelineno-4-33 href=#__codelineno-4-33></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>InstanceId</span><span class=w> </span><span class=n>playerId</span><span class=p>,</span><span class=w> </span><span class=k>ref</span><span class=w> </span><span class=n>SpendCurrency</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
206
+ </span><span id=__span-4-34><a id=__codelineno-4-34 name=__codelineno-4-34 href=#__codelineno-4-34></a><span class=w> </span><span class=p>{</span>
207
+ </span><span id=__span-4-35><a id=__codelineno-4-35 name=__codelineno-4-35 href=#__codelineno-4-35></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>balance</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>_playerData</span><span class=p>.</span><span class=n>GetCurrencyBalance</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span>
208
+ </span><span id=__span-4-36><a id=__codelineno-4-36 name=__codelineno-4-36 href=#__codelineno-4-36></a><span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>balance</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=n>amount</span><span class=p>)</span>
209
+ </span><span id=__span-4-37><a id=__codelineno-4-37 name=__codelineno-4-37 href=#__codelineno-4-37></a><span class=w> </span><span class=p>{</span>
210
+ </span><span id=__span-4-38><a id=__codelineno-4-38 name=__codelineno-4-38 href=#__codelineno-4-38></a><span class=w> </span><span class=n>Debug</span><span class=p>.</span><span class=n>LogWarning</span><span class=p>(</span><span class=s>$&quot;Player {playerId} attempted to spend {m.amount} but only has {balance}&quot;</span><span class=p>);</span>
211
+ </span><span id=__span-4-39><a id=__codelineno-4-39 name=__codelineno-4-39 href=#__codelineno-4-39></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>false</span><span class=p>;</span><span class=w> </span><span class=c1>// Cancel the message</span>
212
+ </span><span id=__span-4-40><a id=__codelineno-4-40 name=__codelineno-4-40 href=#__codelineno-4-40></a><span class=w> </span><span class=p>}</span>
213
+ </span><span id=__span-4-41><a id=__codelineno-4-41 name=__codelineno-4-41 href=#__codelineno-4-41></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
214
+ </span><span id=__span-4-42><a id=__codelineno-4-42 name=__codelineno-4-42 href=#__codelineno-4-42></a><span class=w> </span><span class=p>},</span>
215
+ </span><span id=__span-4-43><a id=__codelineno-4-43 name=__codelineno-4-43 href=#__codelineno-4-43></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>50</span>
216
+ </span><span id=__span-4-44><a id=__codelineno-4-44 name=__codelineno-4-44 href=#__codelineno-4-44></a><span class=w> </span><span class=p>);</span>
217
+ </span><span id=__span-4-45><a id=__codelineno-4-45 name=__codelineno-4-45 href=#__codelineno-4-45></a>
218
+ </span><span id=__span-4-46><a id=__codelineno-4-46 name=__codelineno-4-46 href=#__codelineno-4-46></a><span class=w> </span><span class=c1>// Block achievement unlocks if already unlocked (idempotency)</span>
219
+ </span><span id=__span-4-47><a id=__codelineno-4-47 name=__codelineno-4-47 href=#__codelineno-4-47></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterTargetedInterceptor</span><span class=o>&lt;</span><span class=n>UnlockAchievement</span><span class=o>&gt;</span><span class=p>(</span>
220
+ </span><span id=__span-4-48><a id=__codelineno-4-48 name=__codelineno-4-48 href=#__codelineno-4-48></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>InstanceId</span><span class=w> </span><span class=n>playerId</span><span class=p>,</span><span class=w> </span><span class=k>ref</span><span class=w> </span><span class=n>UnlockAchievement</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
221
+ </span><span id=__span-4-49><a id=__codelineno-4-49 name=__codelineno-4-49 href=#__codelineno-4-49></a><span class=w> </span><span class=p>{</span>
222
+ </span><span id=__span-4-50><a id=__codelineno-4-50 name=__codelineno-4-50 href=#__codelineno-4-50></a><span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>_playerData</span><span class=p>.</span><span class=n>HasAchievement</span><span class=p>(</span><span class=n>playerId</span><span class=p>,</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=n>achievementId</span><span class=p>))</span>
223
+ </span><span id=__span-4-51><a id=__codelineno-4-51 name=__codelineno-4-51 href=#__codelineno-4-51></a><span class=w> </span><span class=p>{</span>
224
+ </span><span id=__span-4-52><a id=__codelineno-4-52 name=__codelineno-4-52 href=#__codelineno-4-52></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>false</span><span class=p>;</span><span class=w> </span><span class=c1>// Already unlocked, skip</span>
225
+ </span><span id=__span-4-53><a id=__codelineno-4-53 name=__codelineno-4-53 href=#__codelineno-4-53></a><span class=w> </span><span class=p>}</span>
226
+ </span><span id=__span-4-54><a id=__codelineno-4-54 name=__codelineno-4-54 href=#__codelineno-4-54></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
227
+ </span><span id=__span-4-55><a id=__codelineno-4-55 name=__codelineno-4-55 href=#__codelineno-4-55></a><span class=w> </span><span class=p>},</span>
228
+ </span><span id=__span-4-56><a id=__codelineno-4-56 name=__codelineno-4-56 href=#__codelineno-4-56></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>50</span>
229
+ </span><span id=__span-4-57><a id=__codelineno-4-57 name=__codelineno-4-57 href=#__codelineno-4-57></a><span class=w> </span><span class=p>);</span>
230
+ </span><span id=__span-4-58><a id=__codelineno-4-58 name=__codelineno-4-58 href=#__codelineno-4-58></a><span class=w> </span><span class=p>}</span>
231
+ </span><span id=__span-4-59><a id=__codelineno-4-59 name=__codelineno-4-59 href=#__codelineno-4-59></a><span class=p>}</span>
232
+ </span><span id=__span-4-60><a id=__codelineno-4-60 name=__codelineno-4-60 href=#__codelineno-4-60></a>
233
+ </span><span id=__span-4-61><a id=__codelineno-4-61 name=__codelineno-4-61 href=#__codelineno-4-61></a><span class=c1>// Usage: invalid operations automatically blocked</span>
234
+ </span><span id=__span-4-62><a id=__codelineno-4-62 name=__codelineno-4-62 href=#__codelineno-4-62></a><span class=kt>var</span><span class=w> </span><span class=n>permissions</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>PermissionSystem</span><span class=p>(</span><span class=n>playerDataService</span><span class=p>);</span>
235
+ </span><span id=__span-4-63><a id=__codelineno-4-63 name=__codelineno-4-63 href=#__codelineno-4-63></a><span class=n>permissions</span><span class=p>.</span><span class=n>RegisterInterceptors</span><span class=p>();</span>
236
+ </span><span id=__span-4-64><a id=__codelineno-4-64 name=__codelineno-4-64 href=#__codelineno-4-64></a>
237
+ </span><span id=__span-4-65><a id=__codelineno-4-65 name=__codelineno-4-65 href=#__codelineno-4-65></a><span class=c1>// This will be blocked if player doesn&#39;t have 100 currency</span>
238
+ </span><span id=__span-4-66><a id=__codelineno-4-66 name=__codelineno-4-66 href=#__codelineno-4-66></a><span class=kt>var</span><span class=w> </span><span class=n>spendCurrency</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>SpendCurrency</span><span class=p>(</span><span class=mi>100</span><span class=p>);</span>
239
+ </span><span id=__span-4-67><a id=__codelineno-4-67 name=__codelineno-4-67 href=#__codelineno-4-67></a><span class=n>spendCurrency</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span>
240
+ </span><span id=__span-4-68><a id=__codelineno-4-68 name=__codelineno-4-68 href=#__codelineno-4-68></a>
241
+ </span><span id=__span-4-69><a id=__codelineno-4-69 name=__codelineno-4-69 href=#__codelineno-4-69></a><span class=c1>// This will be blocked if achievement is already unlocked</span>
242
+ </span><span id=__span-4-70><a id=__codelineno-4-70 name=__codelineno-4-70 href=#__codelineno-4-70></a><span class=kt>var</span><span class=w> </span><span class=n>unlockAchievement</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>UnlockAchievement</span><span class=p>(</span><span class=s>&quot;first_boss&quot;</span><span class=p>);</span>
243
+ </span><span id=__span-4-71><a id=__codelineno-4-71 name=__codelineno-4-71 href=#__codelineno-4-71></a><span class=n>unlockAchievement</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span>
244
+ </span></code></pre></div> <h4 id=message-enrichment-and-context-addition>Message Enrichment and Context Addition<a class=headerlink href=#message-enrichment-and-context-addition title="Anchor link to this section">&para;</a></h4> <p>Add contextual data to messages as they flow through the system:</p> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span>
245
+ </span><span id=__span-5-2><a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span>
246
+ </span><span id=__span-5-3><a id=__codelineno-5-3 name=__codelineno-5-3 href=#__codelineno-5-3></a><span class=k>using</span><span class=w> </span><span class=nn>System</span><span class=p>;</span>
247
+ </span><span id=__span-5-4><a id=__codelineno-5-4 name=__codelineno-5-4 href=#__codelineno-5-4></a>
248
+ </span><span id=__span-5-5><a id=__codelineno-5-5 name=__codelineno-5-5 href=#__codelineno-5-5></a><span class=na>[DxTargetedMessage]</span>
249
+ </span><span id=__span-5-6><a id=__codelineno-5-6 name=__codelineno-5-6 href=#__codelineno-5-6></a><span class=na>[DxAutoConstructor]</span>
250
+ </span><span id=__span-5-7><a id=__codelineno-5-7 name=__codelineno-5-7 href=#__codelineno-5-7></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>PlayerAction</span>
251
+ </span><span id=__span-5-8><a id=__codelineno-5-8 name=__codelineno-5-8 href=#__codelineno-5-8></a><span class=p>{</span>
252
+ </span><span id=__span-5-9><a id=__codelineno-5-9 name=__codelineno-5-9 href=#__codelineno-5-9></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>actionType</span><span class=p>;</span>
253
+ </span><span id=__span-5-10><a id=__codelineno-5-10 name=__codelineno-5-10 href=#__codelineno-5-10></a><span class=w> </span><span class=na>[DxOptionalParameter]</span>
254
+ </span><span id=__span-5-11><a id=__codelineno-5-11 name=__codelineno-5-11 href=#__codelineno-5-11></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>long</span><span class=w> </span><span class=n>timestamp</span><span class=p>;</span><span class=w> </span><span class=c1>// Added by interceptor</span>
255
+ </span><span id=__span-5-12><a id=__codelineno-5-12 name=__codelineno-5-12 href=#__codelineno-5-12></a><span class=w> </span><span class=na>[DxOptionalParameter]</span>
256
+ </span><span id=__span-5-13><a id=__codelineno-5-13 name=__codelineno-5-13 href=#__codelineno-5-13></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>sessionId</span><span class=p>;</span><span class=w> </span><span class=c1>// Added by interceptor</span>
257
+ </span><span id=__span-5-14><a id=__codelineno-5-14 name=__codelineno-5-14 href=#__codelineno-5-14></a><span class=p>}</span>
258
+ </span><span id=__span-5-15><a id=__codelineno-5-15 name=__codelineno-5-15 href=#__codelineno-5-15></a>
259
+ </span><span id=__span-5-16><a id=__codelineno-5-16 name=__codelineno-5-16 href=#__codelineno-5-16></a><span class=k>public</span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>TelemetryEnricher</span>
260
+ </span><span id=__span-5-17><a id=__codelineno-5-17 name=__codelineno-5-17 href=#__codelineno-5-17></a><span class=p>{</span>
261
+ </span><span id=__span-5-18><a id=__codelineno-5-18 name=__codelineno-5-18 href=#__codelineno-5-18></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>_currentSessionId</span><span class=p>;</span>
262
+ </span><span id=__span-5-19><a id=__codelineno-5-19 name=__codelineno-5-19 href=#__codelineno-5-19></a>
263
+ </span><span id=__span-5-20><a id=__codelineno-5-20 name=__codelineno-5-20 href=#__codelineno-5-20></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=nf>TelemetryEnricher</span><span class=p>(</span><span class=kt>string</span><span class=w> </span><span class=n>sessionId</span><span class=p>)</span>
264
+ </span><span id=__span-5-21><a id=__codelineno-5-21 name=__codelineno-5-21 href=#__codelineno-5-21></a><span class=w> </span><span class=p>{</span>
265
+ </span><span id=__span-5-22><a id=__codelineno-5-22 name=__codelineno-5-22 href=#__codelineno-5-22></a><span class=w> </span><span class=n>_currentSessionId</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>sessionId</span><span class=p>;</span>
266
+ </span><span id=__span-5-23><a id=__codelineno-5-23 name=__codelineno-5-23 href=#__codelineno-5-23></a><span class=w> </span><span class=p>}</span>
267
+ </span><span id=__span-5-24><a id=__codelineno-5-24 name=__codelineno-5-24 href=#__codelineno-5-24></a>
268
+ </span><span id=__span-5-25><a id=__codelineno-5-25 name=__codelineno-5-25 href=#__codelineno-5-25></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>RegisterInterceptors</span><span class=p>()</span>
269
+ </span><span id=__span-5-26><a id=__codelineno-5-26 name=__codelineno-5-26 href=#__codelineno-5-26></a><span class=w> </span><span class=p>{</span>
270
+ </span><span id=__span-5-27><a id=__codelineno-5-27 name=__codelineno-5-27 href=#__codelineno-5-27></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
271
+ </span><span id=__span-5-28><a id=__codelineno-5-28 name=__codelineno-5-28 href=#__codelineno-5-28></a>
272
+ </span><span id=__span-5-29><a id=__codelineno-5-29 name=__codelineno-5-29 href=#__codelineno-5-29></a><span class=w> </span><span class=c1>// Enrich player actions with timestamp and session context</span>
273
+ </span><span id=__span-5-30><a id=__codelineno-5-30 name=__codelineno-5-30 href=#__codelineno-5-30></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterTargetedInterceptor</span><span class=o>&lt;</span><span class=n>PlayerAction</span><span class=o>&gt;</span><span class=p>(</span>
274
+ </span><span id=__span-5-31><a id=__codelineno-5-31 name=__codelineno-5-31 href=#__codelineno-5-31></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>InstanceId</span><span class=w> </span><span class=n>playerId</span><span class=p>,</span><span class=w> </span><span class=k>ref</span><span class=w> </span><span class=n>PlayerAction</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
275
+ </span><span id=__span-5-32><a id=__codelineno-5-32 name=__codelineno-5-32 href=#__codelineno-5-32></a><span class=w> </span><span class=p>{</span>
276
+ </span><span id=__span-5-33><a id=__codelineno-5-33 name=__codelineno-5-33 href=#__codelineno-5-33></a><span class=w> </span><span class=c1>// Add timestamp and session ID to every action</span>
277
+ </span><span id=__span-5-34><a id=__codelineno-5-34 name=__codelineno-5-34 href=#__codelineno-5-34></a><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>PlayerAction</span><span class=p>(</span>
278
+ </span><span id=__span-5-35><a id=__codelineno-5-35 name=__codelineno-5-35 href=#__codelineno-5-35></a><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=n>actionType</span><span class=p>,</span>
279
+ </span><span id=__span-5-36><a id=__codelineno-5-36 name=__codelineno-5-36 href=#__codelineno-5-36></a><span class=w> </span><span class=n>DateTimeOffset</span><span class=p>.</span><span class=n>UtcNow</span><span class=p>.</span><span class=n>ToUnixTimeMilliseconds</span><span class=p>(),</span>
280
+ </span><span id=__span-5-37><a id=__codelineno-5-37 name=__codelineno-5-37 href=#__codelineno-5-37></a><span class=w> </span><span class=n>_currentSessionId</span>
281
+ </span><span id=__span-5-38><a id=__codelineno-5-38 name=__codelineno-5-38 href=#__codelineno-5-38></a><span class=w> </span><span class=p>);</span>
282
+ </span><span id=__span-5-39><a id=__codelineno-5-39 name=__codelineno-5-39 href=#__codelineno-5-39></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
283
+ </span><span id=__span-5-40><a id=__codelineno-5-40 name=__codelineno-5-40 href=#__codelineno-5-40></a><span class=w> </span><span class=p>},</span>
284
+ </span><span id=__span-5-41><a id=__codelineno-5-41 name=__codelineno-5-41 href=#__codelineno-5-41></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>100</span><span class=w> </span><span class=c1>// Run very early to enrich before other interceptors</span>
285
+ </span><span id=__span-5-42><a id=__codelineno-5-42 name=__codelineno-5-42 href=#__codelineno-5-42></a><span class=w> </span><span class=p>);</span>
286
+ </span><span id=__span-5-43><a id=__codelineno-5-43 name=__codelineno-5-43 href=#__codelineno-5-43></a><span class=w> </span><span class=p>}</span>
287
+ </span><span id=__span-5-44><a id=__codelineno-5-44 name=__codelineno-5-44 href=#__codelineno-5-44></a><span class=p>}</span>
288
+ </span><span id=__span-5-45><a id=__codelineno-5-45 name=__codelineno-5-45 href=#__codelineno-5-45></a>
289
+ </span><span id=__span-5-46><a id=__codelineno-5-46 name=__codelineno-5-46 href=#__codelineno-5-46></a><span class=c1>// Usage: messages automatically enriched with context</span>
290
+ </span><span id=__span-5-47><a id=__codelineno-5-47 name=__codelineno-5-47 href=#__codelineno-5-47></a><span class=kt>var</span><span class=w> </span><span class=n>enricher</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>TelemetryEnricher</span><span class=p>(</span><span class=n>Guid</span><span class=p>.</span><span class=n>NewGuid</span><span class=p>().</span><span class=n>ToString</span><span class=p>());</span>
291
+ </span><span id=__span-5-48><a id=__codelineno-5-48 name=__codelineno-5-48 href=#__codelineno-5-48></a><span class=n>enricher</span><span class=p>.</span><span class=n>RegisterInterceptors</span><span class=p>();</span>
292
+ </span><span id=__span-5-49><a id=__codelineno-5-49 name=__codelineno-5-49 href=#__codelineno-5-49></a>
293
+ </span><span id=__span-5-50><a id=__codelineno-5-50 name=__codelineno-5-50 href=#__codelineno-5-50></a><span class=c1>// Emit without timestamp/session - interceptor adds them</span>
294
+ </span><span id=__span-5-51><a id=__codelineno-5-51 name=__codelineno-5-51 href=#__codelineno-5-51></a><span class=kt>var</span><span class=w> </span><span class=n>action</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>PlayerAction</span><span class=p>(</span><span class=s>&quot;jump&quot;</span><span class=p>);</span>
295
+ </span><span id=__span-5-52><a id=__codelineno-5-52 name=__codelineno-5-52 href=#__codelineno-5-52></a><span class=n>action</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span>
296
+ </span><span id=__span-5-53><a id=__codelineno-5-53 name=__codelineno-5-53 href=#__codelineno-5-53></a><span class=c1>// Handlers receive fully enriched message with timestamp and sessionId</span>
297
+ </span></code></pre></div> <h4 id=cooldown-and-rate-limiting>Cooldown and Rate Limiting<a class=headerlink href=#cooldown-and-rate-limiting title="Anchor link to this section">&para;</a></h4> <p>Prevent message spam by enforcing cooldowns:</p> <div class="language-csharp highlight"><span class=filename>C#</span><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core</span><span class=p>;</span>
298
+ </span><span id=__span-6-2><a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a><span class=k>using</span><span class=w> </span><span class=nn>DxMessaging.Core.MessageBus</span><span class=p>;</span>
299
+ </span><span id=__span-6-3><a id=__codelineno-6-3 name=__codelineno-6-3 href=#__codelineno-6-3></a><span class=k>using</span><span class=w> </span><span class=nn>System</span><span class=p>;</span>
300
+ </span><span id=__span-6-4><a id=__codelineno-6-4 name=__codelineno-6-4 href=#__codelineno-6-4></a><span class=k>using</span><span class=w> </span><span class=nn>System.Collections.Generic</span><span class=p>;</span>
301
+ </span><span id=__span-6-5><a id=__codelineno-6-5 name=__codelineno-6-5 href=#__codelineno-6-5></a>
302
+ </span><span id=__span-6-6><a id=__codelineno-6-6 name=__codelineno-6-6 href=#__codelineno-6-6></a><span class=na>[DxTargetedMessage]</span>
303
+ </span><span id=__span-6-7><a id=__codelineno-6-7 name=__codelineno-6-7 href=#__codelineno-6-7></a><span class=na>[DxAutoConstructor]</span>
304
+ </span><span id=__span-6-8><a id=__codelineno-6-8 name=__codelineno-6-8 href=#__codelineno-6-8></a><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=k>partial</span><span class=w> </span><span class=k>struct</span><span class=w> </span><span class=nc>CastSpell</span>
305
+ </span><span id=__span-6-9><a id=__codelineno-6-9 name=__codelineno-6-9 href=#__codelineno-6-9></a><span class=p>{</span>
306
+ </span><span id=__span-6-10><a id=__codelineno-6-10 name=__codelineno-6-10 href=#__codelineno-6-10></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=kt>string</span><span class=w> </span><span class=n>spellName</span><span class=p>;</span>
307
+ </span><span id=__span-6-11><a id=__codelineno-6-11 name=__codelineno-6-11 href=#__codelineno-6-11></a><span class=p>}</span>
308
+ </span><span id=__span-6-12><a id=__codelineno-6-12 name=__codelineno-6-12 href=#__codelineno-6-12></a>
309
+ </span><span id=__span-6-13><a id=__codelineno-6-13 name=__codelineno-6-13 href=#__codelineno-6-13></a><span class=k>public</span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>CooldownManager</span>
310
+ </span><span id=__span-6-14><a id=__codelineno-6-14 name=__codelineno-6-14 href=#__codelineno-6-14></a><span class=p>{</span>
311
+ </span><span id=__span-6-15><a id=__codelineno-6-15 name=__codelineno-6-15 href=#__codelineno-6-15></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=n>Dictionary</span><span class=o>&lt;</span><span class=p>(</span><span class=n>InstanceId</span><span class=p>,</span><span class=w> </span><span class=kt>string</span><span class=p>),</span><span class=w> </span><span class=n>DateTime</span><span class=o>&gt;</span><span class=w> </span><span class=n>_lastCastTimes</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=p>();</span>
312
+ </span><span id=__span-6-16><a id=__codelineno-6-16 name=__codelineno-6-16 href=#__codelineno-6-16></a><span class=w> </span><span class=k>private</span><span class=w> </span><span class=k>readonly</span><span class=w> </span><span class=n>TimeSpan</span><span class=w> </span><span class=n>_globalCooldown</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>TimeSpan</span><span class=p>.</span><span class=n>FromSeconds</span><span class=p>(</span><span class=mf>1.5</span><span class=p>);</span>
313
+ </span><span id=__span-6-17><a id=__codelineno-6-17 name=__codelineno-6-17 href=#__codelineno-6-17></a>
314
+ </span><span id=__span-6-18><a id=__codelineno-6-18 name=__codelineno-6-18 href=#__codelineno-6-18></a><span class=w> </span><span class=k>public</span><span class=w> </span><span class=k>void</span><span class=w> </span><span class=nf>RegisterInterceptors</span><span class=p>()</span>
315
+ </span><span id=__span-6-19><a id=__codelineno-6-19 name=__codelineno-6-19 href=#__codelineno-6-19></a><span class=w> </span><span class=p>{</span>
316
+ </span><span id=__span-6-20><a id=__codelineno-6-20 name=__codelineno-6-20 href=#__codelineno-6-20></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>bus</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>MessageHandler</span><span class=p>.</span><span class=n>MessageBus</span><span class=p>;</span>
317
+ </span><span id=__span-6-21><a id=__codelineno-6-21 name=__codelineno-6-21 href=#__codelineno-6-21></a>
318
+ </span><span id=__span-6-22><a id=__codelineno-6-22 name=__codelineno-6-22 href=#__codelineno-6-22></a><span class=w> </span><span class=n>_</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>bus</span><span class=p>.</span><span class=n>RegisterTargetedInterceptor</span><span class=o>&lt;</span><span class=n>CastSpell</span><span class=o>&gt;</span><span class=p>(</span>
319
+ </span><span id=__span-6-23><a id=__codelineno-6-23 name=__codelineno-6-23 href=#__codelineno-6-23></a><span class=w> </span><span class=p>(</span><span class=k>ref</span><span class=w> </span><span class=n>InstanceId</span><span class=w> </span><span class=n>casterId</span><span class=p>,</span><span class=w> </span><span class=k>ref</span><span class=w> </span><span class=n>CastSpell</span><span class=w> </span><span class=n>m</span><span class=p>)</span><span class=w> </span><span class=o>=&gt;</span>
320
+ </span><span id=__span-6-24><a id=__codelineno-6-24 name=__codelineno-6-24 href=#__codelineno-6-24></a><span class=w> </span><span class=p>{</span>
321
+ </span><span id=__span-6-25><a id=__codelineno-6-25 name=__codelineno-6-25 href=#__codelineno-6-25></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>key</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=n>casterId</span><span class=p>,</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=n>spellName</span><span class=p>);</span>
322
+ </span><span id=__span-6-26><a id=__codelineno-6-26 name=__codelineno-6-26 href=#__codelineno-6-26></a><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>now</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>DateTime</span><span class=p>.</span><span class=n>UtcNow</span><span class=p>;</span>
323
+ </span><span id=__span-6-27><a id=__codelineno-6-27 name=__codelineno-6-27 href=#__codelineno-6-27></a>
324
+ </span><span id=__span-6-28><a id=__codelineno-6-28 name=__codelineno-6-28 href=#__codelineno-6-28></a><span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>_lastCastTimes</span><span class=p>.</span><span class=n>TryGetValue</span><span class=p>(</span><span class=n>key</span><span class=p>,</span><span class=w> </span><span class=k>out</span><span class=w> </span><span class=kt>var</span><span class=w> </span><span class=n>lastCast</span><span class=p>))</span>
325
+ </span><span id=__span-6-29><a id=__codelineno-6-29 name=__codelineno-6-29 href=#__codelineno-6-29></a><span class=w> </span><span class=p>{</span>
326
+ </span><span id=__span-6-30><a id=__codelineno-6-30 name=__codelineno-6-30 href=#__codelineno-6-30></a><span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>now</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>lastCast</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>_globalCooldown</span><span class=p>)</span>
327
+ </span><span id=__span-6-31><a id=__codelineno-6-31 name=__codelineno-6-31 href=#__codelineno-6-31></a><span class=w> </span><span class=p>{</span>
328
+ </span><span id=__span-6-32><a id=__codelineno-6-32 name=__codelineno-6-32 href=#__codelineno-6-32></a><span class=w> </span><span class=c1>// Still on cooldown</span>
329
+ </span><span id=__span-6-33><a id=__codelineno-6-33 name=__codelineno-6-33 href=#__codelineno-6-33></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>false</span><span class=p>;</span>
330
+ </span><span id=__span-6-34><a id=__codelineno-6-34 name=__codelineno-6-34 href=#__codelineno-6-34></a><span class=w> </span><span class=p>}</span>
331
+ </span><span id=__span-6-35><a id=__codelineno-6-35 name=__codelineno-6-35 href=#__codelineno-6-35></a><span class=w> </span><span class=p>}</span>
332
+ </span><span id=__span-6-36><a id=__codelineno-6-36 name=__codelineno-6-36 href=#__codelineno-6-36></a>
333
+ </span><span id=__span-6-37><a id=__codelineno-6-37 name=__codelineno-6-37 href=#__codelineno-6-37></a><span class=w> </span><span class=n>_lastCastTimes</span><span class=p>[</span><span class=n>key</span><span class=p>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>now</span><span class=p>;</span>
334
+ </span><span id=__span-6-38><a id=__codelineno-6-38 name=__codelineno-6-38 href=#__codelineno-6-38></a><span class=w> </span><span class=k>return</span><span class=w> </span><span class=k>true</span><span class=p>;</span>
335
+ </span><span id=__span-6-39><a id=__codelineno-6-39 name=__codelineno-6-39 href=#__codelineno-6-39></a><span class=w> </span><span class=p>},</span>
336
+ </span><span id=__span-6-40><a id=__codelineno-6-40 name=__codelineno-6-40 href=#__codelineno-6-40></a><span class=w> </span><span class=n>priority</span><span class=p>:</span><span class=w> </span><span class=o>-</span><span class=mi>10</span>
337
+ </span><span id=__span-6-41><a id=__codelineno-6-41 name=__codelineno-6-41 href=#__codelineno-6-41></a><span class=w> </span><span class=p>);</span>
338
+ </span><span id=__span-6-42><a id=__codelineno-6-42 name=__codelineno-6-42 href=#__codelineno-6-42></a><span class=w> </span><span class=p>}</span>
339
+ </span><span id=__span-6-43><a id=__codelineno-6-43 name=__codelineno-6-43 href=#__codelineno-6-43></a><span class=p>}</span>
340
+ </span><span id=__span-6-44><a id=__codelineno-6-44 name=__codelineno-6-44 href=#__codelineno-6-44></a>
341
+ </span><span id=__span-6-45><a id=__codelineno-6-45 name=__codelineno-6-45 href=#__codelineno-6-45></a><span class=c1>// Usage: rapid spell casts automatically throttled</span>
342
+ </span><span id=__span-6-46><a id=__codelineno-6-46 name=__codelineno-6-46 href=#__codelineno-6-46></a><span class=kt>var</span><span class=w> </span><span class=n>cooldowns</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>CooldownManager</span><span class=p>();</span>
343
+ </span><span id=__span-6-47><a id=__codelineno-6-47 name=__codelineno-6-47 href=#__codelineno-6-47></a><span class=n>cooldowns</span><span class=p>.</span><span class=n>RegisterInterceptors</span><span class=p>();</span>
344
+ </span><span id=__span-6-48><a id=__codelineno-6-48 name=__codelineno-6-48 href=#__codelineno-6-48></a>
345
+ </span><span id=__span-6-49><a id=__codelineno-6-49 name=__codelineno-6-49 href=#__codelineno-6-49></a><span class=kt>var</span><span class=w> </span><span class=n>spell1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>CastSpell</span><span class=p>(</span><span class=s>&quot;fireball&quot;</span><span class=p>);</span>
346
+ </span><span id=__span-6-50><a id=__codelineno-6-50 name=__codelineno-6-50 href=#__codelineno-6-50></a><span class=n>spell1</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span><span class=w> </span><span class=c1>// ✓ Allowed</span>
347
+ </span><span id=__span-6-51><a id=__codelineno-6-51 name=__codelineno-6-51 href=#__codelineno-6-51></a><span class=kt>var</span><span class=w> </span><span class=n>spell2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>CastSpell</span><span class=p>(</span><span class=s>&quot;fireball&quot;</span><span class=p>);</span>
348
+ </span><span id=__span-6-52><a id=__codelineno-6-52 name=__codelineno-6-52 href=#__codelineno-6-52></a><span class=n>spell2</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span><span class=w> </span><span class=c1>// ✗ Blocked (too soon)</span>
349
+ </span><span id=__span-6-53><a id=__codelineno-6-53 name=__codelineno-6-53 href=#__codelineno-6-53></a><span class=c1>// ... wait 1.5s ...</span>
350
+ </span><span id=__span-6-54><a id=__codelineno-6-54 name=__codelineno-6-54 href=#__codelineno-6-54></a><span class=kt>var</span><span class=w> </span><span class=n>spell3</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>CastSpell</span><span class=p>(</span><span class=s>&quot;fireball&quot;</span><span class=p>);</span>
351
+ </span><span id=__span-6-55><a id=__codelineno-6-55 name=__codelineno-6-55 href=#__codelineno-6-55></a><span class=n>spell3</span><span class=p>.</span><span class=n>EmitTargeted</span><span class=p>(</span><span class=n>playerId</span><span class=p>);</span><span class=w> </span><span class=c1>// ✓ Allowed</span>
352
+ </span></code></pre></div> <p>When to Use Interceptors</p> <p>✅ <strong>Good use cases:</strong></p> <ul> <li>Input validation and sanitization</li> <li>Value clamping and normalization</li> <li>Permission and authorization checks</li> <li>State‑based message filtering</li> <li>Rate limiting and cooldown enforcement</li> <li>Message enrichment (adding timestamps, session IDs, etc.)</li> <li>Early exit for duplicate or redundant messages</li> <li>Logging suspicious or invalid message attempts</li> </ul> <p>⚠️ <strong>Key principles:</strong></p> <ul> <li><strong>Run before handlers</strong>: Interceptors execute before any type‑specific handlers, making them perfect for preprocessing</li> <li><strong>Can mutate</strong>: Unlike post‑processors, interceptors can modify message data</li> <li><strong>Can cancel</strong>: Return <code>false</code> to prevent the message from reaching handlers</li> <li><strong>Priority matters</strong>: Lower priority values run first (use negative priorities for early interceptors)</li> </ul> <p>❌ <strong>Avoid for:</strong></p> <ul> <li>Read‑only observation (use handlers or post‑processors instead)</li> <li>Actions that should run after message processing (use post‑processors)</li> <li>Heavy computation that doesn't need to block the message</li> </ul> <p>Post‑processors</p> <ul> <li>Observe after handlers. Great for logging, analytics, or follow‑up emission.</li> <li>Per category and scope (per target/source or all):</li> <li>Untargeted: <code>RegisterUntargetedPostProcessor&lt;T&gt;</code></li> <li>Targeted (specific): <code>RegisterTargetedPostProcessor&lt;T&gt;(target, ...)</code></li> <li>Targeted (all): <code>RegisterTargetedWithoutTargetingPostProcessor&lt;T&gt;(...)</code></li> <li>Broadcast (specific): <code>RegisterBroadcastPostProcessor&lt;T&gt;(source, ...)</code></li> <li>Broadcast (all): <code>RegisterBroadcastWithoutSourcePostProcessor&lt;T&gt;(...)</code></li> </ul> <p>Global Accept‑All</p> <ul> <li>Register once and observe all messages on a handler.</li> <li>Overloads exist for action and fast handlers.</li> <li>Runs between interceptors and type‑specific handlers.</li> </ul> <p>Related</p> <ul> <li><a href=../message-types/ >Message Types</a></li> <li><a href=../listening-patterns/ >Listening Patterns</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="January 26, 2026 18:15:02 UTC"><span class=timeago datetime=2026-01-26T18:15:02+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="January 26, 2026 18:15:02 UTC">2026-01-26</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="January 26, 2026 18:15:02 UTC"><span class=timeago datetime=2026-01-26T18:15:02+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="January 26, 2026 18:15:02 UTC">2026-01-26</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../targeting-and-context/ class="md-footer__link md-footer__link--prev" aria-label="Previous: Targeting & Context"> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </div> <div class=md-footer__title> <span class=md-footer__direction> Previous </span> <div class=md-ellipsis> Targeting & Context </div> </div> </a> <a href=../../guides/patterns/ class="md-footer__link md-footer__link--next" aria-label="Next: Patterns"> <div class=md-footer__title> <span class=md-footer__direction> Next </span> <div class=md-ellipsis> Patterns </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2017-2026 Wallstop Studios </div> </div> <div class=md-social> <a href=https://github.com/wallstop target=_blank rel=noopener title="Wallstop Studios on GitHub" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <div class=md-progress data-md-component=progress role=progressbar></div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.expand", "navigation.footer", "navigation.indexes", "navigation.instant", "navigation.instant.prefetch", "navigation.instant.progress", "navigation.path", "navigation.sections", "navigation.tabs", "navigation.tabs.sticky", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.79ae519e.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> <script src=https://unpkg.com/mermaid@11/dist/mermaid.min.js></script> <script src=../../javascripts/mermaid-config.js></script> <script src=../../javascripts/csharp-highlight.js></script> </body> </html>