# Lonelog: Card Notation Add-on
Roberto Bisceglie

## Overview

Core Lonelog already acknowledges card draws as a valid way to resolve uncertainty or generate content. What it doesn’t define is a compact, unambiguous shorthand for card identities.

Without a standard, logs fill with inconsistent spellings: “Q of spades”, “queen♠”, “Queen Spades”, “QS”. Tarot draws fare worse — “reversed Tower” and “The Tower (rev.)” and “XVI r” are all the same card. For tools that parse logs, and for players who share them, the inconsistency creates friction.

This add-on defines a compact notation for three types of card draws:

- **Standard playing cards** — the 52-card deck plus jokers
- **Tarot** — Major Arcana, Minor Arcana, and upright/reversed orientation
- **Oracle decks** — a lightweight convention for named-card systems

**When not to use this add-on:** If you play a single system with a single card type and never share logs, your current spelling probably works fine. Adopt this notation when consistency matters — for shared logs, tool support, or crossing between multiple card systems in one campaign.

------------------------------------------------------------------------

### What This Add-on Adds

| Element | Purpose | Example in a log |
|----|----|----|
| `{rank}{suit}` | Compact standard card identity | `tbl: draw=Qs -> Dark omen` |
| `M{n}` | Major Arcana by number | `tbl: draw=M12r -> Blocked` |
| `{rank}{suit}` with tarot suits | Minor Arcana | `tbl: draw=KnCu` |
| `r` suffix | Reversed orientation (Tarot) | `tbl: draw=M16r` |
| Position labels in spreads | Named positions in a multi-card spread | `tbl: Past=5s, Present=Ks` |

The add-on also uses two ordinary core tags for what a deck and a hand hold: a `[Deck:]` tag counts the cards left and lists the ones out of play, and a `hand:` category on the character lists the cards held (see *Deck State and Hands*).

**No new core symbols.** Card draws use `tbl:`, `d:` and `->` exactly as defined in core Lonelog. The card identity uses `=` as the drawn result; `->` carries the interpreted outcome.

### Design Principles

**Cards follow the same pattern as dice.** `=` records the drawn card, `->` carries the interpreted outcome, `=>` carries the narrative consequence. `tbl: draw=Qs -> Dark omen` is the same structure as `tbl: Loot d100=42 -> A broken sword`.

**Content or verdict decides the prefix** (core Lonelog §3.2.2). Most draws give content — an image, an omen, a place, an encounter — and use `tbl:`. A draw that gives a verdict — a fate card answering yes or no, a card played against a target — uses `d:`.

**Compact but readable.** `Qs` over “Queen of Spades”. Abbreviations should be recoverable without a lookup table by anyone who knows the card system.

**No orientation assumption.** Upright is the default and unmarked. Reversed is the exception and is always marked with `r`. A card with no suffix is always upright.

------------------------------------------------------------------------

## Part I: Practical Reference

### How card draws fit into a log entry

Card draws follow the same structure as dice rolls. The card drawn is the raw result and uses `=`; the interpreted outcome uses `->`. Draws that give content use `tbl:`:

    tbl: draw=Qs
    tbl: draw=M12r -> The obstacle is myself.
    => The Hanged Man reversed. I've been the obstacle all along.

For oracle reads that answer a question, pair with `?`. When the card gives an image to interpret, it’s still `tbl:`; when your deck or method turns it into a yes or no, it’s `d:`:

    ? Can I trust the merchant?
    tbl: draw=Jc -> Scheming youth
    => No.

    ? Is the bridge still standing?
    d: draw=Qh vs red -> Yes

For spreads, label each position with `=`:

    tbl: Past=5s, Present=Ks, Future=ACu

------------------------------------------------------------------------

Or split across lines when each card needs its own consequence:

    tbl: Past=5s
    tbl: Present=Ks
    tbl: Future=ACu
    => Conflict led here. Authority holds the present. Something new waits at the end.

------------------------------------------------------------------------

### Standard Playing Cards

Ranks: `A`, `2`–`10`, `J`, `Q`, `K`  
Suits: `h` (hearts ♥), `d` (diamonds ♦), `c` (clubs ♣), `s` (spades ♠)  
Format: `{rank}{suit}`

    Ah    Ace of Hearts
    7c    Seven of Clubs
    Ks    King of Spades
    10d   Ten of Diamonds
    Jh    Jack of Hearts

Jokers: `Jkr` (generic), `RJkr` (red joker), `BJkr` (black joker).

When the game cares about color but not suit: `R` (red — hearts or diamonds), `B` (black — clubs or spades).

**Card identities always follow `=`.** Write `draw=4d` or `Past=4d`, never a bare `4d`. That keeps a card apart from a dice expression: `4d` after `=` is the four of diamonds, while `4d6` on its own is four six-sided dice. The rule holds in compact form too.

In a log:

    @ Search the body
    tbl: draw=3h -> Minor find
    => A folded note, damp and illegible.

    @ Fate check
    tbl: draw=Jkr -> Chaos surge
    => Everything changes.

------------------------------------------------------------------------

### Tarot

#### Major Arcana

Format: `M{n}` where `n` is the card’s number (0–21).

| n   | Card               | n   | Card           |
|-----|--------------------|-----|----------------|
| 0   | The Fool           | 11  | Justice        |
| 1   | The Magician       | 12  | The Hanged Man |
| 2   | The High Priestess | 13  | Death          |
| 3   | The Empress        | 14  | Temperance     |
| 4   | The Emperor        | 15  | The Devil      |
| 5   | The Hierophant     | 16  | The Tower      |
| 6   | The Lovers         | 17  | The Star       |
| 7   | The Chariot        | 18  | The Moon       |
| 8   | Strength           | 19  | The Sun        |
| 9   | The Hermit         | 20  | Judgement      |
| 10  | Wheel of Fortune   | 21  | The World      |

Reversed: append `r`.

- `tbl: draw=M0` — The Fool, upright
- `tbl: draw=M16r` — The Tower, reversed

When space allows, add the name as an inline description:

    tbl: draw=M12 // The Hanged Man
    tbl: draw=M16r // The Tower reversed

#### Minor Arcana

Suits: `Wa` (Wands), `Cu` (Cups), `Sw` (Swords), `Pe` (Pentacles)  
Ranks: `A`, `2`–`10`, `Pg` (Page), `Kn` (Knight), `Q`, `K`  
Format: `{rank}{suit}`

    ACu     Ace of Cups
    7Wa     Seven of Wands
    PgSw    Page of Swords
    KnPe    Knight of Pentacles
    QCu     Queen of Cups
    KWa     King of Wands

Reversed: append `r`.

- `tbl: draw=5Swr` — Five of Swords, reversed
- `tbl: draw=KnCu` — Knight of Cups, upright

In a log:

    ? What force opposes me here?
    tbl: draw=KSw -> Adversary: principle, not malice
    => The King of Swords — cold logic. He acts on conviction, not cruelty.

------------------------------------------------------------------------

### Oracle Decks

Oracle decks use proprietary card names that cannot be standardized. Use the card’s name as free text with `=`, optionally with an inline description naming the deck. A deck that answers yes/no questions, like Mythic’s fate cards, gives a verdict and uses `d:`.

    tbl: draw // Ironsworn Oracle=Darkness and Shadow
    d: draw // Mythic Fate=Exceptional Yes -> Yes, and...
    tbl: draw // Crow's Eye Oracle=The Lantern -> Safe passage

For decks you use repeatedly, a short deck tag in the label keeps things scannable:

    tbl: Crow=The Lantern -> Safe passage
    tbl: Crow=The Abyss -> Something follows

------------------------------------------------------------------------

### Spreads

A spread is a multi-card draw where each card occupies a named position. Write position labels with `=` for each card.

**Single-line (compact, for short spreads):**

    tbl: Past=5s, Present=Ks, Future=ACu

**Multi-line (when each card needs interpretation space):**

    tbl: Past=M16r -> Collapse that was delayed, not avoided.
    => The Tower reversed. I should have fallen sooner.

    tbl: Present=KWa -> I am the force at work here.
    => The King of Wands. The fire is mine to wield or waste.

    tbl: Future=ACu -> Something new if I let go.
    => The Ace of Cups. Grief first, then an opening.

**Labeled spread with deck name:**

    tbl: Celtic Past=7Wa, Celtic Present=M12, Celtic Future=3Cu

------------------------------------------------------------------------

### Deck State and Hands

Many card-driven games care about what is left in the deck. Track it with a `[Deck:]` tag, using core Lonelog’s update rules: the count of cards left is `×N`, and the cards out of play are an `out:` category.

    [Deck:Main|×52]
    tbl: draw=Qs -> Dark omen
    [Deck:Main|×-1|out:+Qs]
    tbl: draw=M16 -> Collapse
    [Deck:Main|×-1|out:+M16]

When you reshuffle, reset both:

    => I shuffle the discards back in.
    [Deck:Main|×52|out:none]

A **hand** is a category on whoever holds it. Add cards as you draw them and remove them as you play them:

    [PC:Kael|hand:Ah, Kd, 7c]
    [PC:Kael|hand:+Qs]
    @ Play the Ace against the guard
    [PC:Kael|hand:-Ah]

Use several `[Deck:]` tags when a game uses several decks: `[Deck:Encounters|×20]`, `[Deck:Fate|×22]`.

### Common Patterns by System

**Standard deck as oracle (e.g. *Carta*, *For the Queen*):**

    @ Explore the next hex
    tbl: draw=7d -> Forest path
    => Tall pines, no trail. I mark it as unmapped.

**Tarot for scene framing:**

    ? What is the mood of this place?
    tbl: draw=M18 // The Moon -> Illusion, hidden things
    => Nothing here is what it seems.

**Oracle roll plus a complication card:**

    ? Is the bridge still standing? (Likely)
    d: d100=47 vs 75 -> Yes
    tbl: draw=Ks -> Complication: authority figure
    => The bridge is there, but a city guard holds the crossing.

**Reversed card as obstacle:**

    ? Does my contact show up?
    tbl: draw=M6r // The Lovers reversed -> Divided loyalties
    => He's here, but he brought someone I didn't expect.

**Horror game — Joker as catastrophe trigger:**

    tbl: draw=RJkr -> The Worst Thing
    => The lights go out across the whole building. Something found the generator.

------------------------------------------------------------------------

## Part II: Complete Reference

------------------------------------------------------------------------

## 1. Standard Deck Notation

### Ranks

| Symbol   | Card         |
|----------|--------------|
| `A`      | Ace          |
| `2`–`10` | Number cards |
| `J`      | Jack         |
| `Q`      | Queen        |
| `K`      | King         |

### Suits

| Symbol | Suit       | Color |
|--------|------------|-------|
| `h`    | Hearts ♥   | Red   |
| `d`    | Diamonds ♦ | Red   |
| `c`    | Clubs ♣    | Black |
| `s`    | Spades ♠   | Black |

### Jokers

| Symbol | Card                                       |
|--------|--------------------------------------------|
| `Jkr`  | Joker (generic, when color doesn’t matter) |
| `RJkr` | Red Joker                                  |
| `BJkr` | Black Joker                                |

### Color Shorthand

When a system cares about red/black but not the specific suit:

| Symbol | Meaning                       |
|--------|-------------------------------|
| `R`    | Red card (hearts or diamonds) |
| `B`    | Black card (clubs or spades)  |

### Full Card Examples

    Ah    Ace of Hearts
    2c    Two of Clubs
    10d   Ten of Diamonds
    Jh    Jack of Hearts
    Qs    Queen of Spades
    Kd    King of Diamonds
    Jkr   Joker

**Note:** `10d` (Ten of Diamonds) is two characters before the suit. All other ranks are one character. Parsers should treat `10` as a complete rank token.

## 2. Tarot Notation

### Major Arcana

**Format:** `M{n}` where `n` is 0–21.

**Reversed:** append `r` — `M0r`, `M16r`.

| n   | Card               | Symbol | Reversed |
|-----|--------------------|--------|----------|
| 0   | The Fool           | `M0`   | `M0r`    |
| 1   | The Magician       | `M1`   | `M1r`    |
| 2   | The High Priestess | `M2`   | `M2r`    |
| 3   | The Empress        | `M3`   | `M3r`    |
| 4   | The Emperor        | `M4`   | `M4r`    |
| 5   | The Hierophant     | `M5`   | `M5r`    |
| 6   | The Lovers         | `M6`   | `M6r`    |
| 7   | The Chariot        | `M7`   | `M7r`    |
| 8   | Strength           | `M8`   | `M8r`    |
| 9   | The Hermit         | `M9`   | `M9r`    |
| 10  | Wheel of Fortune   | `M10`  | `M10r`   |
| 11  | Justice            | `M11`  | `M11r`   |
| 12  | The Hanged Man     | `M12`  | `M12r`   |
| 13  | Death              | `M13`  | `M13r`   |
| 14  | Temperance         | `M14`  | `M14r`   |
| 15  | The Devil          | `M15`  | `M15r`   |
| 16  | The Tower          | `M16`  | `M16r`   |
| 17  | The Star           | `M17`  | `M17r`   |
| 18  | The Moon           | `M18`  | `M18r`   |
| 19  | The Sun            | `M19`  | `M19r`   |
| 20  | Judgement          | `M20`  | `M20r`   |
| 21  | The World          | `M21`  | `M21r`   |

**Note:** The Thoth Tarot and some other decks swap the positions of Strength (VIII) and Justice (XI). The `M{n}` notation follows the Rider-Waite-Smith standard (Strength = 8, Justice = 11). If you use a different numbering, note it in your session header.

### Minor Arcana

**Suits:**

| Symbol | Suit              | Element |
|--------|-------------------|---------|
| `Wa`   | Wands             | Fire    |
| `Cu`   | Cups              | Water   |
| `Sw`   | Swords            | Air     |
| `Pe`   | Pentacles / Coins | Earth   |

**Ranks:**

| Symbol   | Card         |
|----------|--------------|
| `A`      | Ace          |
| `2`–`10` | Number cards |
| `Pg`     | Page         |
| `Kn`     | Knight       |
| `Q`      | Queen        |
| `K`      | King         |

**Format:** `{rank}{suit}` — `ACu`, `7Wa`, `PgSw`, `KnPe`, `QCu`, `KWa`

**Reversed:** append `r` — `7War`, `PgSwr`

### Orientation

| Suffix   | Meaning           |
|----------|-------------------|
| *(none)* | Upright (default) |
| `r`      | Reversed          |

## 3. Oracle Decks

Oracle decks use proprietary card names. No compact symbol system can cover them all. Use the card’s name as free text with `=`.

For logs that use a single oracle deck throughout, establish a short deck prefix in your session header or as a note, then use it consistently:

    [Session: ...] [Oracle: Crow's Eye]

    tbl: draw=The Lantern -> Safe passage
    tbl: draw=The Abyss -> Something follows

For mixed-deck sessions, name the deck inline:

    tbl: draw // Crow's Eye=The Lantern
    tbl: draw // Ironsworn Oracle=Darkness and Shadow

------------------------------------------------------------------------

## 4. Spread Notation

A spread assigns each drawn card to a named position. The position label appears in the `tbl:` field with `=` for each card.

### Single-line format

    tbl: {Position1}={card1}, {Position2}={card2}, ...

Example:

    tbl: Past=5Sw, Present=KWa, Future=ACu

### Multi-line format

Use when each card warrants its own `->` or `=>`:

    tbl: {Position}={card} -> [outcome]
    => [Narrative consequence]

------------------------------------------------------------------------

### Common spread names

These are conventions, not requirements. Any position label is valid.

| Spread | Positions |
|----|----|
| Three-card | `Past`, `Present`, `Future` |
| Three-card (alt) | `Situation`, `Action`, `Outcome` |
| Three-card (alt) | `Mind`, `Body`, `Spirit` |
| Celtic Cross | `Self`, `Cross`, `Foundation`, `Past`, `Crown`, `Future`, `Self2`, `Environment`, `Hopes`, `Outcome` |
| Single draw | `draw` (no position label needed) |

------------------------------------------------------------------------

## Quick Reference

### Standard Deck

    Ah  Ac  Ad  As    Aces
    Kh  Kc  Kd  Ks    Kings
    Qh  Qc  Qd  Qs    Queens
    Jh  Jc  Jd  Js    Jacks
    10h … 2h          Number cards (any suit)
    Jkr  RJkr  BJkr   Jokers
    R  B                Color only

### Tarot

    M0 – M21            Major Arcana (M0 = The Fool, M21 = The World)
    M0r                 Reversed Major Arcana

    ACu  7Wa  PgSw  KnPe  QCu  KWa   Minor Arcana
    7War                              Reversed Minor Arcana

    Suits: Wa (Wands)  Cu (Cups)  Sw (Swords)  Pe (Pentacles)
    Ranks: A  2–10  Pg  Kn  Q  K

### In a Log

| Log line | Meaning |
|----|----|
| `tbl: draw=Qs` | Single draw, no interpretation needed |
| `tbl: draw=Qs -> Dark omen` | Single draw with outcome |
| `tbl: draw=M16r -> Everything breaks` | Tarot, reversed, with outcome |
| `tbl: draw=M12 // The Hanged Man` | Draw with the card’s name as a description |
| `tbl: Past=5Sw, Present=KWa` | Spread on a single line |
| `d: draw=M17 -> Yes` | A card answering a yes/no question: a verdict |

------------------------------------------------------------------------

## FAQ

**Q: Why does the card use `=` rather than `->` — isn’t the card itself the outcome?**  
A: The card drawn is the raw result of the mechanic, just as `9` is the raw result of `2d6+2`. What the card *means* in context — the interpreted state — is the outcome, and that goes in `->`. `tbl: draw=Qs -> Dark omen` mirrors `tbl: Loot d100=42 -> A broken sword` exactly.

**Q: What about card games that use multiple decks, or partial decks?**  
A: Give each deck its own `[Deck:]` tag, with a count of the cards left and an `out:` list of the cards out of play. See *Deck State and Hands*.

**Q: My system uses pip value (Ace = 1, King = 13) rather than card identity. Should I write the card or the number?**  
A: Write the card: `d: draw=Ah -> 1`. The card identity is the raw result; the pip value is the interpreted outcome. Both are preserved.

**Q: How do I note a hand of cards (drawn but not played)?**  
A: As a `hand:` category on the character: `[PC:Kael|hand:Ah, Kd, 7c, Qs, 3h]`. Remove a card with `hand:-Ah` when it is played. See *Deck State and Hands*.

**Q: Tarot decks vary — some have different names or art. Does `M12` always mean The Hanged Man?**  
A: This spec follows the Rider-Waite-Smith numbering, which is the most common standard. If your deck diverges (e.g. Thoth swaps Strength and Justice), note it once in your session header: `[Deck: Thoth — Strength=M11, Justice=M8]`.

------------------------------------------------------------------------

**Q: Can I use `?` with a card draw instead of `tbl:` or `d:`?**  
A: Use `?` for the question, then `tbl:` or `d:` for the draw that answers it. They are separate events — the question is asked, then the card is drawn as the mechanical resolution.

    ? What does fate hold for this meeting?
    tbl: draw=M10 // Wheel of Fortune -> Chance rules all
    => Anything could happen. I prepare for nothing and everything.

**Q: What about digital tools that render suit symbols (♥ ♦ ♣ ♠)?**  
A: The letter abbreviations (`h d c s`) are the canonical form for logs. Tools that render logs may substitute suit symbols for display, but the stored notation should use letters to stay plain-text safe.

------------------------------------------------------------------------

## Credits & License

© 2026 Roberto Bisceglie

This add-on extends [Lonelog](https://zeruhur.itch.io/lonelog) by Roberto Bisceglie.

**Version History:**

- v1.1.0: Added deck state (`[Deck:]` with `×N` and `out:`) and hands (`hand:` category); card identities always follow `=`; the oracle example no longer claims to be Ironsworn’s. Aligned with Lonelog v1.7: draws that give content use `tbl:`, draws that give a verdict use `d:`. Explanations moved out of code blocks.
- v1.0.0: Initial release

This work is licensed under the **Creative Commons Attribution-ShareAlike 4.0 International License**.

You are free to share and adapt this material, provided you give appropriate credit and distribute adaptations under the same license. Session logs and play records created using this add-on’s notation are your own work and are not subject to this license.
