Hi, thanks for sharing this. It looks like the RequiresCapability feature is working correctly in this situation. After testing the code sample you've provided, I can see both capabilities being applied to the test inside the Processing Queue.
However, there is another issue here that is creating some problems and is likely the cause of what you've encountered.
It seems that the engine isn't correctly updating the capability requirements of tests that are already in the processing queue. This means that if you adjust the capabilities for a test that has already been executed, you may need to change its name (and back again) or reset the engine before the execution task is correctly updated with the new capability.
I'll see that this gets fixed. Thanks again.