public void RemovesBlight()
    {
        var setup  = new ConfigurableTestFixture();
        var space  = setup.Board[3];
        var tokens = setup.GameState.Tokens[space];

        // Given: 1 blight on board where presence is
        setup.Spirit.Presence.Adjust(space, 2);
        tokens.Init(TokenType.Blight, 1);
        tokens.Blight.Count.ShouldBe(1);

        //  When: Card played
        _ = GrowthThroughSacrifice.ActAsync(setup.TargetSelf);
        setup.Choose(space);           // select presence to destroy
        setup.Choose(space);           // select location to add presence / remove blight
        setup.Choose("blight");

        //  Then: Spirit gains element
        tokens.Blight.Count.ShouldBe(0);
    }
    public void RevealedTokens_GainElements()
    {
        var fixture      = new ConfigurableTestFixture();
        var elementTrack = Track.AirEnergy;
        var space        = fixture.Board[3];

        // Given: Spirit's next cardplay has an element on it
        fixture.CardPlayTrack = new PresenceTrack(Track.Card1, elementTrack);
        //   And: has no air elements
        fixture.Spirit.Elements[elementTrack.Elements[0]].ShouldBe(0);
        //   And: 2 presence on board
        fixture.Spirit.Presence.Adjust(space, 2);

        //  When: Card played
        _ = GrowthThroughSacrifice.ActAsync(fixture.TargetSelf);
        fixture.Choose(space);           // select presence to destroy
        fixture.Choose(space);           // select location to add presence / remove blight
        fixture.Choose("add 1 presence");
        fixture.Choose(elementTrack);    // take presence from cardplay track

        //  Then: Spirit gains element
        fixture.Spirit.Elements[elementTrack.Elements[0]].ShouldBe(1);
    }