# Tag albums A small service that tells Home Assistant which album to play for a scanned RFID card, and a web page to assign albums to new cards. ## Language **Tag**: An RFID sticker on a vinyl record, identified by the ID the reader reports (e.g. `53-13-0B-2A-34-00-01`). Nothing is ever written to it. _Avoid_: card, NFC tag **Assignment**: The link from one **Tag** to an ordered list of one or more albums (artist + album) in the music library, played one after the other. Usually one album; more when one physical record holds several digital releases (e.g. a vinyl compiling two EPs). _Avoid_: encoding, mapping, tag map **Unassigned tag**: A **Tag** the service has seen scanned but that has no **Assignment** yet. _Avoid_: unknown tag, new tag **Scan**: One report that a **Tag** was placed on a reader, as relayed by Home Assistant. A **Scan** of an **Unassigned tag** is how the service learns about it. ## Relationships - A **Tag** has zero or one **Assignment** - An **Assignment** holds one or more albums, in play order - Every **Scan** is of exactly one **Tag**; the first **Scan** of an unseen **Tag** creates it as an **Unassigned tag** ## Example dialogue > **Dev:** "I stuck a tag on a new record and put it on the reader. Do we need to encode it?" > **Domain expert:** "It's an **Unassigned tag** now; open the page and give it an **Assignment**. Nothing gets written to the tag." ## Flagged ambiguities - "Album" in an **Assignment** means a release in the digital library (album or EP), not the physical record: one record can map to several. - "Encode the tags" meant assigning an album to a **Tag**, not writing data onto it. Resolved: **Assignment**.