0021 – The number of a life on a memorial ========================================== :Status: Accepted by the project owner and implemented in the working trees (not yet released) :Date: 2026-11-03 Context ------- Death is permanent, but a login may be used again: the next character of the same name is a new life. On the memorial two stones of the same name look alike. Rulers solve this with a number after the name (*Charles II*). The Gilgamesh datadisk wants that number written in Sumerian (cuneiform) numerals; other worlds do not. Decision -------- * The server counts the lives of a login per world: ``players.ordinal`` is set at registration (one more than the characters of that name before it) and copied to ``graves.ordinal`` (migration ``0068_life_ordinal.sql``; a memorial's number is permanent like the rest of it). The login itself does not change. * The first life carries no number. The obituary (``GET /graves/{id}``, the death answer) has ``ordinal`` from the second life on; the memorial shows ``Name II``. * The server stores a **count**, never a script or language. How it is written is the client's choice. The engine default is Roman numerals (``life_ordinal.gd``; a number above 3999 stays decimal). * A datadisk may choose another system in its manifest: ``ordinal_numerals: sumerian`` (``roman`` or ``sumerian``) and ``ordinal_font``, a ``.ttf`` or ``.otf`` below ``media/fonts/`` (at most 1 MiB) that carries the glyphs; ``sumerian`` requires the font. They are announced in ``GET /world`` ``datadisks``; the client fetches the font from the story media route and draws it as a fallback of the theme font. * Sumerian numerals are sexagesimal: U+1230B (ten) and U+12079 (one) repeated within a place of up to fifty-nine, places separated by a space. The Gilgamesh disk ships Noto Sans Cuneiform cut to those two signs (SIL OFL 1.1, ``media/fonts/License-noto.txt``). Consequences ------------ * Existing characters are numbered by their registration order in a migration; the graves follow their players. * The hall of fame and the 3D memorial do not show the number yet; only the memorial panel does. * Only the manifest and the client know about numeral systems; adding another means one more entry in ``ordinal_numerals``, its glyphs in the client's ``LifeOrdinal`` and the schema in ``ishtaria-protocol``.