{% comment %} `#id_game_kit` wraps every section so `gameboard.js`'s `initGameKitTooltips ()` finds ALL `.token` elements (trinkets + tokens + decks) under one scope. Data attrs feed `buildMiniContent()` for the Equipped / Not Equipped / In-Use status text. {% endcomment %}
{% for entry in applets %} {% if entry.applet.slug == 'gk-trinkets' and entry.visible %}

Trinkets

{% if pass_token %}
{% if pass_token.pk == equipped_trinket_id %}{% else %}{% endif %}

{{ pass_token.tooltip_name }}

{{ pass_token.tooltip_description }}

{% if pass_token.tooltip_shoptalk %}

{{ pass_token.tooltip_shoptalk }}

{% endif %}

{{ pass_token.tooltip_expiry }}

{% endif %} {% if band %}
{% if band.pk == equipped_trinket_id %}{% else %}{% endif %}

{{ band.tooltip_name }}

{{ band.tooltip_description }}

{% if band.tooltip_shoptalk %}

{{ band.tooltip_shoptalk }}

{% endif %}

{{ band.tooltip_expiry }}

{% endif %} {% if carte %}
{% if carte.current_room %}{% elif carte.pk == equipped_trinket_id %}{% else %}{% endif %}

{{ carte.tooltip_name }}

{{ carte.tooltip_description }}

{% if carte.tooltip_shoptalk %}

{{ carte.tooltip_shoptalk }}

{% endif %}

{{ carte.tooltip_expiry }}

{% endif %} {% if coin %}
{% if coin.current_room %}{% elif coin.pk == equipped_trinket_id %}{% else %}{% endif %}

{{ coin.tooltip_name }}

{{ coin.tooltip_description }}

{% if coin.tooltip_shoptalk %}

{{ coin.tooltip_shoptalk }}

{% endif %}

{{ coin.tooltip_expiry }}

{% endif %} {% if not pass_token and not band and not carte and not coin %}

No trinkets yet.

{% endif %}
{% endif %} {% if entry.applet.slug == 'gk-tokens' and entry.visible %}

Tokens

{% comment %} Free + Tithe tokens stack to ONE icon per type — the count renders both in the .tt-title (×N chip) and on the icon itself via `.shop-badge` (parity w. wallet.html's Tithe Bundle badge). Single-token case OMITS the badge (user spec). Cap at "99+" so a runaway count can't overflow the 1.5rem badge circle. {% endcomment %}
{% if free_tokens %} {% with free_tokens.0 as token %}
{% if free_count > 1 %}{% if free_count > 99 %}99+{% else %}{{ free_count }}{% endif %}{% endif %}

{{ token.tooltip_name }}{% if free_count > 1 %} (×{% if free_count > 99 %}99+{% else %}{{ free_count }}{% endif %}){% endif %}

{{ token.tooltip_description }}

{% if token.tooltip_shoptalk %}

{{ token.tooltip_shoptalk }}

{% endif %}

{{ token.tooltip_expiry }}

{% endwith %} {% endif %} {% if tithe_tokens %} {% with tithe_tokens.0 as token %}
{# `fa-piggy-bank` is the canonical tithe-token glyph — #} {# matches wallet (_applet-wallet-tokens.html), kit bag #} {# (_kit_bag_panel.html), shop seed (0009_seed_shop_items) #} {# + FTs. The pre-rewrite version of this template used #} {# `fa-hand-holding-dollar` — sole outlier, now aligned. #} {% if tithe_count > 1 %}{% if tithe_count > 99 %}99+{% else %}{{ tithe_count }}{% endif %}{% endif %}

{{ token.tooltip_name }}{% if tithe_count > 1 %} (×{% if tithe_count > 99 %}99+{% else %}{{ tithe_count }}{% endif %}){% endif %}

{{ token.tooltip_description }}

{{ token.tooltip_expiry }}

{% endwith %} {% endif %} {% if not free_tokens and not tithe_tokens %}

No tokens yet.

{% endif %}
{% endif %} {% if entry.applet.slug == 'gk-decks' and entry.visible %}

Card Decks

{% for deck in deck_variants %}
{% include "apps/gameboard/_partials/_deck_stack_icon.html" %}
{% if deck.in_use_room_name %}{% elif deck.pk == equipped_deck_id %}{% else %}{% endif %}

{{ deck.name }}{% if deck.is_default %} (Default){% endif %}

{{ deck.card_count }}-card Tarot deck{% if deck.is_polarized %} (×2){% endif %}

{% if deck.description %}

{{ deck.description }}

{% endif %}

Stock version (0 substitutions)

{% empty %}

No decks unlocked.

{% endfor %}
{% endif %} {% if entry.applet.slug == 'gk-dice' and entry.visible %}

Dice Sets

{% include "core/_partials/_forthcoming.html" %}
{% endif %} {% if entry.applet.slug == 'pronouns' and entry.visible %}

Pronouns

{% for opt in pronoun_options %}
{{ opt.key }}
{% endfor %}
{% endif %} {% endfor %}