How is "Touch.tapCount" bounded?

I’m having a little trouble understanding the values I am getting out of Touch.tapCount…

How is this function “bounded” the script reference is kinda vague. Lets say I want to detect a “doubt tap” on an object in my environment to trigger a function. So Inside update I have something like this.

if (Input.touchCount == 1) {
	Touch touch = Input.GetTouch(0);
         if (touch.tapCount == 2 && 
		rayAtTouch(touch.position) && 
		hit.collider.gameObject.layer == (int)Layers.Index.interactionLayer) 
		{
			Debug.Log("GOING OFF!");
		}
}

The value coming out of touch.tapCount seems all over the place. When is it resetting that value? I get it’s representing touches but in exactly what frame of reference? Is there a better way to be check for taps manually?

there is a massive explanation here

follow the example step-by-step tutorial for full explanation