vehicles 0.4.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +321 -0
  4. data/README.md +88 -15
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +10 -0
  7. data/data/plates/_decode/at-districts.yml +287 -0
  8. data/data/plates/_decode/ch-cantons.yml +110 -0
  9. data/data/plates/_decode/cn-issuing-offices.yml +463 -0
  10. data/data/plates/_decode/cn-provinces.yml +614 -0
  11. data/data/plates/_decode/cz-kraj.yml +159 -0
  12. data/data/plates/_decode/dk-serial-blocks.yml +327 -0
  13. data/data/plates/_decode/es-provinces.yml +116 -0
  14. data/data/plates/_decode/fr-departements.yml +191 -0
  15. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  16. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  17. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  18. data/data/plates/_decode/hr-cities.yml +315 -0
  19. data/data/plates/_decode/ie-counties.yml +227 -0
  20. data/data/plates/_decode/in-state-codes.yml +169 -0
  21. data/data/plates/_decode/is-districts-1938.yml +116 -0
  22. data/data/plates/_decode/it-provinces.yml +348 -0
  23. data/data/plates/_decode/jp-office-marks.yml +960 -0
  24. data/data/plates/_decode/jp-use-marks.yml +205 -0
  25. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  26. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  27. data/data/plates/_decode/lu-series-order.yml +638 -0
  28. data/data/plates/_decode/mx-entity-series.yml +380 -0
  29. data/data/plates/_decode/my-index-marks.yml +271 -0
  30. data/data/plates/_decode/no-counties-1913.yml +148 -0
  31. data/data/plates/_decode/no-districts.yml +901 -0
  32. data/data/plates/_decode/pl-powiats.yml +567 -0
  33. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  34. data/data/plates/_decode/ro-counties.yml +213 -0
  35. data/data/plates/_decode/se-diplomatic.yml +220 -0
  36. data/data/plates/_decode/si-regions.yml +123 -0
  37. data/data/plates/_decode/sk-districts.yml +314 -0
  38. data/data/plates/_decode/th-registration-elements.yml +208 -0
  39. data/data/plates/_decode/ua-regions.yml +393 -0
  40. data/data/plates/_decode/za-licence-marks.yml +215 -0
  41. data/data/plates/_meta/classes.yml +26 -0
  42. data/data/plates/_meta/separators.yml +102 -0
  43. data/data/plates/ad.yml +961 -0
  44. data/data/plates/ar.yml +762 -0
  45. data/data/plates/at.yml +1424 -0
  46. data/data/plates/au-act.yml +472 -0
  47. data/data/plates/au-nsw.yml +282 -0
  48. data/data/plates/au-nt.yml +431 -0
  49. data/data/plates/au-qld.yml +272 -0
  50. data/data/plates/au-sa.yml +248 -0
  51. data/data/plates/au-tas.yml +302 -0
  52. data/data/plates/au-vic.yml +215 -0
  53. data/data/plates/au-wa.yml +309 -0
  54. data/data/plates/be.yml +1840 -0
  55. data/data/plates/br.yml +1152 -0
  56. data/data/plates/ca-ab.yml +430 -0
  57. data/data/plates/ca-bc.yml +697 -0
  58. data/data/plates/ca-mb.yml +499 -0
  59. data/data/plates/ca-nb.yml +537 -0
  60. data/data/plates/ca-nl.yml +743 -0
  61. data/data/plates/ca-ns.yml +808 -0
  62. data/data/plates/ca-nt.yml +610 -0
  63. data/data/plates/ca-nu.yml +280 -0
  64. data/data/plates/ca-on.yml +881 -0
  65. data/data/plates/ca-pe.yml +592 -0
  66. data/data/plates/ca-qc.yml +1036 -0
  67. data/data/plates/ca-sk.yml +256 -0
  68. data/data/plates/ca-yt.yml +656 -0
  69. data/data/plates/ch.yml +1273 -0
  70. data/data/plates/cn.yml +1431 -0
  71. data/data/plates/cy.yml +688 -0
  72. data/data/plates/cz.yml +1179 -0
  73. data/data/plates/de.yml +1107 -0
  74. data/data/plates/dk.yml +1647 -0
  75. data/data/plates/ee.yml +1275 -0
  76. data/data/plates/es.yml +888 -0
  77. data/data/plates/fi.yml +1271 -0
  78. data/data/plates/fr.yml +1265 -0
  79. data/data/plates/gb.yml +1188 -0
  80. data/data/plates/gr.yml +721 -0
  81. data/data/plates/hr.yml +860 -0
  82. data/data/plates/hu.yml +959 -0
  83. data/data/plates/ie.yml +775 -0
  84. data/data/plates/in.yml +1172 -0
  85. data/data/plates/is.yml +667 -0
  86. data/data/plates/it.yml +1317 -0
  87. data/data/plates/jp.yml +3650 -0
  88. data/data/plates/kr.yml +1375 -0
  89. data/data/plates/li.yml +1010 -0
  90. data/data/plates/lt.yml +879 -0
  91. data/data/plates/lu.yml +842 -0
  92. data/data/plates/lv.yml +924 -0
  93. data/data/plates/mc.yml +1024 -0
  94. data/data/plates/mt.yml +854 -0
  95. data/data/plates/mx.yml +1372 -0
  96. data/data/plates/my.yml +685 -0
  97. data/data/plates/nl.yml +1016 -0
  98. data/data/plates/no.yml +1018 -0
  99. data/data/plates/nz.yml +1699 -0
  100. data/data/plates/pl.yml +1296 -0
  101. data/data/plates/pt.yml +847 -0
  102. data/data/plates/ro.yml +785 -0
  103. data/data/plates/se.yml +1091 -0
  104. data/data/plates/si.yml +1105 -0
  105. data/data/plates/sk.yml +1439 -0
  106. data/data/plates/sm.yml +1119 -0
  107. data/data/plates/th.yml +1150 -0
  108. data/data/plates/ua.yml +1672 -0
  109. data/data/plates/us-ak.yml +763 -0
  110. data/data/plates/us-al.yml +457 -0
  111. data/data/plates/us-ar.yml +427 -0
  112. data/data/plates/us-as.yml +454 -0
  113. data/data/plates/us-az.yml +430 -0
  114. data/data/plates/us-ca.yml +892 -0
  115. data/data/plates/us-co.yml +452 -0
  116. data/data/plates/us-ct.yml +427 -0
  117. data/data/plates/us-dc.yml +614 -0
  118. data/data/plates/us-de.yml +551 -0
  119. data/data/plates/us-fl.yml +741 -0
  120. data/data/plates/us-ga.yml +644 -0
  121. data/data/plates/us-gu.yml +658 -0
  122. data/data/plates/us-hi.yml +585 -0
  123. data/data/plates/us-ia.yml +438 -0
  124. data/data/plates/us-id.yml +531 -0
  125. data/data/plates/us-il.yml +516 -0
  126. data/data/plates/us-in.yml +324 -0
  127. data/data/plates/us-ks.yml +351 -0
  128. data/data/plates/us-ky.yml +770 -0
  129. data/data/plates/us-la.yml +568 -0
  130. data/data/plates/us-ma.yml +379 -0
  131. data/data/plates/us-md.yml +536 -0
  132. data/data/plates/us-me.yml +445 -0
  133. data/data/plates/us-mi.yml +408 -0
  134. data/data/plates/us-mn.yml +411 -0
  135. data/data/plates/us-mo.yml +356 -0
  136. data/data/plates/us-mp.yml +402 -0
  137. data/data/plates/us-ms.yml +432 -0
  138. data/data/plates/us-mt.yml +619 -0
  139. data/data/plates/us-nc.yml +602 -0
  140. data/data/plates/us-nd.yml +419 -0
  141. data/data/plates/us-ne.yml +483 -0
  142. data/data/plates/us-nh.yml +394 -0
  143. data/data/plates/us-nj.yml +547 -0
  144. data/data/plates/us-nm.yml +574 -0
  145. data/data/plates/us-nv.yml +655 -0
  146. data/data/plates/us-ny.yml +592 -0
  147. data/data/plates/us-oh.yml +404 -0
  148. data/data/plates/us-ok.yml +513 -0
  149. data/data/plates/us-or.yml +392 -0
  150. data/data/plates/us-pa.yml +506 -0
  151. data/data/plates/us-pr.yml +507 -0
  152. data/data/plates/us-ri.yml +445 -0
  153. data/data/plates/us-sc.yml +605 -0
  154. data/data/plates/us-sd.yml +428 -0
  155. data/data/plates/us-tn.yml +471 -0
  156. data/data/plates/us-tx.yml +535 -0
  157. data/data/plates/us-ut.yml +384 -0
  158. data/data/plates/us-va.yml +567 -0
  159. data/data/plates/us-vi.yml +489 -0
  160. data/data/plates/us-vt.yml +458 -0
  161. data/data/plates/us-wa.yml +484 -0
  162. data/data/plates/us-wi.yml +509 -0
  163. data/data/plates/us-wv.yml +446 -0
  164. data/data/plates/us-wy.yml +523 -0
  165. data/data/plates/va.yml +604 -0
  166. data/data/plates/za.yml +1141 -0
  167. data/data/vehicles.json +160653 -105090
  168. data/lib/vehicles/configuration.rb +18 -2
  169. data/lib/vehicles/dataset.rb +73 -18
  170. data/lib/vehicles/fuzzy.rb +115 -0
  171. data/lib/vehicles/http.rb +48 -0
  172. data/lib/vehicles/make.rb +36 -6
  173. data/lib/vehicles/mcp_server.rb +5 -5
  174. data/lib/vehicles/model.rb +42 -6
  175. data/lib/vehicles/plates/jurisdiction.rb +32 -0
  176. data/lib/vehicles/plates/series.rb +291 -0
  177. data/lib/vehicles/plates/template_fill.rb +188 -0
  178. data/lib/vehicles/plates/templates.rb +162 -0
  179. data/lib/vehicles/plates.rb +122 -0
  180. data/lib/vehicles/providers/hosted_provider.rb +49 -58
  181. data/lib/vehicles/providers/local_provider.rb +4 -3
  182. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  183. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  184. data/lib/vehicles/version.rb +1 -1
  185. data/lib/vehicles.rb +53 -16
  186. data/rakelib/data_refresh.rake +109 -0
  187. data/rakelib/plates_refresh.rake +29 -0
  188. data/sig/vehicles.rbs +18 -0
  189. metadata +174 -2
@@ -0,0 +1,1119 @@
1
+ # plates/sm.yml — San Marino (PRD-PLATES gate L1, microstates group).
2
+ # DRAFT for verification. All primary text fetched from the Consiglio Grande e
3
+ # Generale law archive (consigliograndeegenerale.sm), 2026-08-02.
4
+ #
5
+ # ---------------------------------------------------------------------------
6
+ # THIS FILE IS ALMOST ENTIRELY PRIMARY, AND THE CHAIN IS UNBROKEN BACK TO 1922.
7
+ # ---------------------------------------------------------------------------
8
+ # San Marino turned out to have the deepest reachable archive of the five
9
+ # microstates. Every series below is dated from an instrument, and the
10
+ # amendment chain is continuous: a 1922 Regolamento whose article 11 is STILL
11
+ # the formal target of amendment a century later, replaced comma by comma in
12
+ # 1986, 1993 and 2022.
13
+ #
14
+ # THE INSTRUMENTS, in the order they matter:
15
+ # * Legge 10 marzo 1989 n. 23, "Norme sulla Carta di Circolazione e sulle
16
+ # targhe di immatricolazione" (pubbl. 22 March 1989) — THE ENABLING ACT.
17
+ # Art. 17: "Con apposito Decreto Reggenziale sono stabilite le
18
+ # caratteristiche costruttive, dimensionali e cromatiche delle targhe,
19
+ # nonchè i loro prezzi di vendita." Every plate decree since cites it.
20
+ # * Regolamento 6 marzo 1922 n. 13, art. 11 — the root plate provision.
21
+ # * Decreto 18 dicembre 1986 n. 151 — the digits-only modern plate.
22
+ # * Decreto 29 settembre 1993 n. 109 — introduces LETTER + FOUR DIGITS.
23
+ # * Decreto Delegato 16 settembre 2022 n. 132 — the current redesign.
24
+ # * Decreto Delegato 31 gennaio 2019 n. 22 — the green electric plates.
25
+ # plus the per-class decrees cited on each series below.
26
+ #
27
+ # ---------------------------------------------------------------------------
28
+ # FOUR FINDINGS THAT CORRECT THE SECONDARY ACCOUNTS
29
+ # ---------------------------------------------------------------------------
30
+ #
31
+ # 1. "RSM WAS REMOVED FROM THE PLATE IN 2023" IS FALSE, BY 37 YEARS. Decreto
32
+ # Delegato 132/2022 does not mention RSM at all — it could not remove what
33
+ # was already gone. RSM left the ordinary plate in 1986, when Decreto
34
+ # 151/1986 art. 1 replaced the third comma of the 1922 art. 11 with a spec
35
+ # listing only the arms, the "Repubblica di San Marino" legend and the
36
+ # numbers. RSM survives as a SEPARATE OVAL national sign under Legge
37
+ # 23/1989 art. 19 — "La targa di nazionalità dello Stato è composta dalle
38
+ # lettere RSM dipinte in nero su fondo rifrangente bianco a forma di
39
+ # elisse" — which DD 132/2022 art. 8 still prices separately at EUR 5,00.
40
+ # It also survives ON the historic-vehicle plate of 2006.
41
+ #
42
+ # 2. "THE CURRENT FORMAT DATES FROM 3 DECEMBER 1993" IS NOT SUPPORTED. The
43
+ # instrument that created the letter+four-digit format is Decreto 29
44
+ # settembre 1993 n. 109, and its art. 4 says the system "entra in vigore
45
+ # immediatamente" with plates issued progressively as old stock runs out.
46
+ # No primary text mentions 3 December 1993. `period.start` is 1993 on the
47
+ # instrument's own authority; the day-precision claim is not carried.
48
+ #
49
+ # 3. THE 2022 REDESIGN'S DATES ARE THREE DIFFERENT DATES, AND THE INSTRUMENT
50
+ # DISTINGUISHES THEM — this is the instrument-date rule in its richest form
51
+ # anywhere in this group:
52
+ # - 16 September 2022: DD 132/2022's own date, publication and entry into
53
+ # force. The small 300x100 front plate is lawful FROM THIS DATE.
54
+ # - 30 June 2023: the hard stop for issuing OLD-format stock (art. 9(1)).
55
+ # - 1 July 2023: the date from which the blue must be RAL 5017
56
+ # (art. 9(2)) — a COLOUR date, not a format date.
57
+ # Reading "first issued 1 July 2023" off this decree is wrong: art. 9(1)
58
+ # sets an END date for old stock, not a START date for the new model. The
59
+ # two series below carry the overlap honestly rather than inventing a clean
60
+ # cutover.
61
+ #
62
+ # 4. THE LETTER ALPHABET CHANGED IN 2022, AND BY EXACTLY ONE LETTER. Decreto
63
+ # 109/1993 art. 2 listed NINETEEN letters (no U). DD 132/2022 art. 3 lists
64
+ # TWENTY, adding U. D, E, I, O, Q, R remain excluded throughout — R because
65
+ # it is reserved to rimorchi and E to export, which is a functional
66
+ # exclusion rather than a legibility one. Both alphabets are carried in
67
+ # `regex_strict` on their own series, which is exactly what the strict tier
68
+ # is for.
69
+ #
70
+ # ---------------------------------------------------------------------------
71
+ # period_evidence VOCABULARY used in this file:
72
+ # instrument-in-force the instrument's own commencement
73
+ # instrument-dated-both-ends start AND end each fixed by an instrument
74
+ # statutory-operative-date the instrument names an OPERATIVE date for
75
+ # issuance that differs from its own
76
+ # commencement — the sharpest instance of the
77
+ # instrument-date rule in this file
78
+ # instrument-in-force-upper-bound earliest instrument read; start is an
79
+ # UPPER bound
80
+ # secondary-wikipedia WIKIPEDIA-DERIVED (mandatory tag)
81
+ #
82
+ # format_evidence VOCABULARY: statutory | secondary-wikipedia | not-established
83
+ #
84
+ # A NOTE ON THE ARCHIVE. consigliograndeegenerale.sm warns that documents
85
+ # extracted from it "lack authenticated character" and directs anyone needing
86
+ # authentic copies to the Segreteria Istituzionale. The Bollettino Ufficiale
87
+ # issue numbers were NOT retrieved in this pass; publication dates come from
88
+ # the archive's own metadata. Recorded as a limit on every citation below.
89
+ # ---------------------------------------------------------------------------
90
+ jurisdiction: sm
91
+ authority:
92
+ name: Ufficio Registro Automezzi, Repubblica di San Marino — Legge 10 marzo 1989 n. 23
93
+ url: "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020838.html"
94
+ binding: vehicle
95
+ binding_note: >-
96
+ Legge 25 novembre 1997 n. 136 art. 7: the Ufficio "assegna il relativo numero
97
+ di immatricolazione e … rilascia le targhe e la Carta di Circolazione a nome
98
+ del proprietario" — the plate issues against the vehicle's registration, in
99
+ the owner's name. No provision reserves a number to a person across vehicles
100
+ in the Swiss/Liechtenstein manner, so `vehicle` rather than `owner`. Note the
101
+ contrast with li.yml and ch.yml, which is real and not an artefact.
102
+ instrument:
103
+ citation: "Legge 10 marzo 1989 n. 23, Norme sulla Carta di Circolazione e sulle targhe di immatricolazione"
104
+ published: "1989-03-22"
105
+ delegation: >-
106
+ Art. 17: "Con apposito Decreto Reggenziale sono stabilite le caratteristiche
107
+ costruttive, dimensionali e cromatiche delle targhe, nonchè i loro prezzi di
108
+ vendita." This is why the plate specifications live in decrees rather than
109
+ in the Codice della Strada.
110
+ manufacture_control: >-
111
+ Art. 14: "La fabbricazione delle targhe è soggetta ad apposita autorizzazione
112
+ del Congresso di Stato che esercita il controllo sulla produzione a mezzo
113
+ dell'Ufficio Registro Automezzi."
114
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020838.html # Legge 23/1989 art. 13, 14, 17, 18, 19"
115
+
116
+ # ---------------------------------------------------------------------------
117
+ # Jurisdiction-wide facts.
118
+ # ---------------------------------------------------------------------------
119
+ common:
120
+ codice_della_strada_does_not_regulate_plates:
121
+ finding: >-
122
+ A SOURCED NEGATIVE worth stating, because it is where a researcher would
123
+ naturally look first. San Marino's road code — Decreto Delegato 28 aprile
124
+ 2008 n. 67, promulgated in consolidated form as Decreto Delegato 26 maggio
125
+ 2008 n. 81 under Legge 20 marzo 2008 n. 51 — contains NO plate
126
+ specification. Its art. 29 expressly delegates the subject out, listing
127
+ among the matters for special legislation "g) le carte di circolazione, le
128
+ targhe di immatricolazione, speciali, provvisorie e di prova." The code
129
+ carries only enforcement provisions (arts. 56, 60, 62, 63). Note also that
130
+ it is a DECRETO DELEGATO, not a Legge.
131
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17023725.html # DD 81/2008 art. 29 lit. g"
132
+ display:
133
+ rule: >-
134
+ Legge 23/1989 art. 13: "Ogni autoveicolo deve recare, nella parte anteriore
135
+ ed in quella posteriore, una targa contenente il numero di immatricolazione.
136
+ Ogni motoveicolo, rimorchio, trattrice agricola, rimorchio agricolo deve
137
+ essere munito della suddetta targa posta soltanto nella parte posteriore.
138
+ Ogni carrello appendice deve essere munito, nella parte posteriore, di una
139
+ targa ripetitrice del numero di immatricolazione del veicolo trainante."
140
+ frames_forbidden: >-
141
+ Art. 18: "Non è ammesso l'uso di cornici portatarga. Le viti di fissaggio
142
+ della targa, che devono essere di materiale non riflettente, non vanno
143
+ poste in corrispondenza dei numeri di immatricolazione, dello stemma e del
144
+ talloncino di revisione." A rare explicit ban on plate frames.
145
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020838.html # Legge 23/1989 art. 13, 18"
146
+ country_sign:
147
+ letters: "RSM"
148
+ shape: ellipse
149
+ background: "#FFFFFF"
150
+ foreground: "#000000"
151
+ rule: >-
152
+ Legge 23/1989 art. 19: "La targa di nazionalità dello Stato è composta
153
+ dalle lettere RSM dipinte in nero su fondo rifrangente bianco a forma di
154
+ elisse." A SEPARATE OVAL, not a field on the plate — and still a priced
155
+ article in the current decree (DD 132/2022 art. 8, "Sigla Internazionale
156
+ dello Stato EUR 5,00"). See finding 1 in the header: RSM has not been part
157
+ of the ordinary plate since 1986.
158
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020838.html # Legge 23/1989 art. 19"
159
+ euro_band:
160
+ present: false
161
+ evidence: >-
162
+ HONEST LIMIT ON A NEGATIVE. San Marino is not in the EU and no Euro band
163
+ appears in any specification from 1922 to 2026 — but no instrument
164
+ AFFIRMATIVELY states its absence. This is strong negative evidence from an
165
+ unbroken series of exhaustive design specs, not a positive citation, and
166
+ it is recorded as such rather than dressed up.
167
+ colours:
168
+ rule: >-
169
+ The characters and border are BLUE on a white retroreflective ground —
170
+ "di colore blu" in every decree from 1986 onward. The 1922 original said
171
+ "in azzurro su fondo bianco".
172
+ ral_5017:
173
+ value: "RAL 5017"
174
+ from: "2023-07-01"
175
+ rule: >-
176
+ DD 132/2022 art. 9(2), verbatim: "A decorrere dall'1 luglio 2023 i
177
+ caratteri alfanumerici blu delle targhe di immatricolazione saranno di
178
+ colore blu RAL 5017." THIS IS A NAMED COLOUR STANDARD — the only one in
179
+ the microstates group, and the reason San Marino's blue is a genuine
180
+ spec claim where Liechtenstein's and Monaco's colours are not.
181
+ hex_note: >-
182
+ RAL 5017 ("Verkehrsblau"/traffic blue) has no single authoritative sRGB
183
+ value; RAL publishes it as a physical standard. The hex carried below is
184
+ `hex_basis: ral-converted` — a conventional conversion, NOT a spec
185
+ value — and the RAL reference itself is the citable fact.
186
+ before_ral: >-
187
+ Before 1 July 2023 the decrees say only "di colore blu" with no RAL,
188
+ Pantone or CIE reference. Those series carry `hex_basis: observed`.
189
+ arms_colours: >-
190
+ Decreto 151/1986 art. 1 specifies the arms in "colori rifrangenti (rosso,
191
+ blu, verde, giallo e nero)"; DD 132/2022 art. 2 upgrades the reference to
192
+ "i pantoni di cui all'Allegato 'B' alla Legge Costituzionale 22 luglio
193
+ 2011 n.1" and the logotype to the "manuale d'uso" annexed to Regolamento
194
+ 6 agosto 2012 n. 3. NEITHER ANNEX WAS FETCHED in this pass — the Pantone
195
+ values themselves are a recorded gap.
196
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 2 and art. 9(2)"
197
+ alphabet:
198
+ current:
199
+ letters: [A, B, C, F, G, H, J, K, L, M, N, P, S, T, U, V, W, X, Y, Z]
200
+ count: 20
201
+ rule: >-
202
+ DD 132/2022 art. 3: "I caratteri alfabetici utilizzabili per la
203
+ composizione delle targhe delle serie ordinarie sono i seguenti: A, B,
204
+ C, F, G, H, J, K, L, M, N, P, S, T, U, V, W, X, Y, Z. 2. I caratteri
205
+ numerici utilizzabili per la composizione delle targhe di
206
+ immatricolazione vanno da zero a nove."
207
+ previous:
208
+ letters: [A, B, C, F, G, H, J, K, L, M, N, P, S, T, V, W, X, Y, Z]
209
+ count: 19
210
+ rule: "Decreto 109/1993 art. 2, the same list WITHOUT U."
211
+ excluded: [D, E, I, O, Q, R, U]
212
+ excluded_note: >-
213
+ D, E, I, O, Q and R are excluded from the ordinary series throughout; U
214
+ was excluded until 2022 and is now admitted. The exclusions are NOT all of
215
+ one kind and the distinction matters: I, O and Q are legibility
216
+ exclusions (confusable with 1 and 0), while R is reserved to trailers and
217
+ E to export plates — functional reservations. Neither decree states the
218
+ reasons; the reservation of R and E is visible from the trailer and export
219
+ decrees themselves.
220
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 3; Decreto 109/1993 art. 2"
221
+ progression:
222
+ rule: >-
223
+ Sequential. Legge 136/1997 art. 7 and DD 132/2022 art. 7 both presuppose a
224
+ "numerazione progressiva" — the reservation right runs "entro i 400 numeri
225
+ successivi a quello disponibile al momento della prenotazione" (EUR 50) or
226
+ "entro i 1.000 numeri successivi" (EUR 100).
227
+ letter_rollover_gap: >-
228
+ RECORDED GAP, and a real one. NO INSTRUMENT STATES the rule for advancing
229
+ the letter when the four digits exhaust. The only exhaustion-triggered
230
+ rollover written into primary law anywhere in San Marino is on the EXPORT
231
+ series (DD 96/2026: the new grammar issues "a seguito dell'assegnazione
232
+ dell'ultima targa con la sigla della composizione attuale"). That rule
233
+ must NOT be generalised to the ordinary series, and no `progression` claim
234
+ below does so.
235
+ source: "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 7"
236
+ emblem:
237
+ present: true
238
+ rendered: placeholder
239
+ rule: >-
240
+ The "stemma ufficiale" appears in relief on every ordinary plate, at the
241
+ left. DD 132/2022 art. 2 binds it to the constitutional annex's
242
+ proportions and Pantones. PRD-PLATES §3's placeholder rule applies: the
243
+ arms are a state emblem with no located clean licence, and the
244
+ constitutional annex was not fetched.
245
+ not_modelled:
246
+ - "GE (Gendarmeria) IS NOT MODELLED, and this is a positive finding rather than an omission. The archive was searched for Gendarmeria plate instruments and returned nothing. San Marino law knows only 'Corpi di Polizia' collectively (DD 132/2022 art. 4 lit. b) with a single POLIZIA legend. If GE plates exist they have no instrument in this archive, and asserting a legal basis for them would be manufacturing one."
247
+ - "VU (Vigili Urbani) IS NOT MODELLED. The archive holds Vigili Urbani corps instruments (organisation, staffing, the Regolamento 5 novembre 1963 n. 44) but NOTHING about targhe. The widely-repeated 'not used since 1983' end date has no primary support located, and without an instrument at either end the series cannot be dated at all."
248
+ - "TAXI plates do not appear in any instrument read. DD 132/2022 art. 8 prices a 'Targhetta N.C.C.' (noleggio con conducente) at EUR 50,00, which is a small supplementary plate rather than a registration series; it is noted here and not modelled as a series."
249
+ - "The CAPITANI REGGENTI vehicles reportedly carry reserved combinations. DD 132/2022 art. 6 and Decreto 149/2003 art. 2 do reserve certain strings from the personalized series, naming POLIZIA, POL, CRS, CD, RSM and SMR — but no instrument read creates a head-of-state series. Not modelled."
250
+
251
+ series:
252
+
253
+ # =========================================================================
254
+ # THE ORDINARY SERIES — letter + four digits. Split at 2022 because the
255
+ # FRONT PLATE CHANGED SIZE; see the modelling note on sm-standard-2022.
256
+ # =========================================================================
257
+ - id: sm-standard-1993
258
+ class: standard
259
+ categories: [car, van, truck, bus]
260
+ period: { start: 1993, end: 2023 }
261
+ period_evidence: instrument-dated-both-ends
262
+ period_note: >-
263
+ START 1993: Decreto 29 settembre 1993 n. 109 art. 1 introduces "un
264
+ carattere alfabetico seguito da quattro caratteri numerici", and art. 4
265
+ commences it immediately — "Il sistema di targatura di cui all'Art. 1
266
+ entra in vigore immediatamente e le targhe saranno consegnate
267
+ progressivamente con l'esaurimento delle targhe di vecchio tipo ancora in
268
+ giacenza presso l'Ufficio Registro Automezzi." Note that the instrument
269
+ itself provides for a phased rollout, so 1993 is when issuance BEGAN, not
270
+ when the old plate stopped. END 2023: DD 132/2022 art. 9(1) sets the hard
271
+ stop — old-format plates issue "fino a esaurimento delle giacenze
272
+ d'ufficio e comunque non oltre il 30 giugno 2023."
273
+ The widely-repeated "3 December 1993" appears in no primary text; see
274
+ header finding 2.
275
+ matching: strict
276
+ format:
277
+ pattern: "L9999"
278
+ regex: '\A[A-Z]\d{4}\z'
279
+ regex_strict: '\A[ABCFGHJKLMNPSTVWXYZ]\d{4}\z'
280
+ format_evidence: statutory
281
+ charset:
282
+ letters: "the NINETEEN letters of Decreto 109/1993 art. 2 — A B C F G H J K L M N P S T V W X Y Z. U is NOT among them; it is admitted only from 2022."
283
+ notes: >-
284
+ `regex` keeps [A-Z] because the lint round-trips it against the
285
+ pattern's L token; `regex_strict` carries the sourced nineteen-letter
286
+ alphabet. The difference between this strict twin and
287
+ sm-standard-2022's is exactly one letter, and that difference is the
288
+ only way to tell the two series apart from the string alone.
289
+ separator: none
290
+ separator_note: >-
291
+ The decree prescribes "un carattere alfabetico seguito da quattro
292
+ caratteri numerici" with NO separator glyph and no gap specification, so
293
+ the pattern spells the serial unbroken. This is one of the few series in
294
+ the dataset with no separator position at all.
295
+ design:
296
+ plate: { w: 390, h: 120, unit: mm, note: "BOTH front and rear at this size — Decreto 109/1993 art. 1, 'Le targhe anteriori e posteriori degli autoveicoli devono essere di forma rettangolare delle dimensioni di mm.390x120'" }
297
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
298
+ foreground: "#003399"
299
+ foreground_note: "'di colore blu' with no RAL or Pantone reference in the 1993 decree — hex_basis observed. The named RAL arrives only in 2023; see common.colours."
300
+ characters: { h: 79, w: 45, stroke: 12.5, unit: mm, note: "Decreto 109/1993 art. 1 lit. b" }
301
+ band: { side: none }
302
+ emblem: { present: true, rendered: placeholder, position: left, note: "arms in reflective colours plus 'Repubblica di San Marino' on two lines in blue relief" }
303
+ legend: { text: "Repubblica di San Marino", color: "#003399", position: "beside the arms, two lines" }
304
+ border: { color: "#003399", relief: true }
305
+ rear_differs: false
306
+ rear_differs_note: "FALSE for this series — front and rear were the same 390x120 plate. That is precisely what changed in 2022."
307
+ region_encoding: none
308
+ notes: >-
309
+ THE 1993 ORDINARY SERIES: letter plus four digits, 390x120 mm front AND
310
+ rear, blue on white. Decreto 109/1993 also abolished the revision-sticker
311
+ obligation (art. 3), which is why the 27 mm raised circle prescribed by
312
+ the 1986 decree disappears from the plate. Overlaps sm-standard-2022 for
313
+ the 2022-2023 run-off; that overlap is real and is provided for by DD
314
+ 132/2022 art. 9(1).
315
+ sources:
316
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17021492.html # Decreto 29 settembre 1993 n. 109, artt. 1-4: the letter+4-digit format, the 19-letter alphabet, immediate commencement and phased issue"
317
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 9(1): old-format stock issues no later than 30 June 2023"
318
+
319
+ - id: sm-standard-2022
320
+ class: standard
321
+ categories: [car, van, truck, bus]
322
+ period: { start: 2022 }
323
+ period_evidence: instrument-in-force
324
+ period_note: >-
325
+ 16 September 2022 — the date DD 132/2022 was made, published and came into
326
+ force, all three being the same day per the archive's metadata. THE SMALL
327
+ FRONT PLATE IS LAWFUL FROM THAT DATE. It is tempting to date this series
328
+ to 1 July 2023 because that is the date most often reported, but art. 9(2)
329
+ makes 1 July 2023 the date the blue becomes RAL 5017 — a colour date
330
+ applying to ALL series — and art. 9(1) makes 30 June 2023 the last day for
331
+ OLD stock. Neither is this series' start. See header finding 3.
332
+ matching: strict
333
+ format:
334
+ pattern: "L9999"
335
+ regex: '\A[A-Z]\d{4}\z'
336
+ regex_strict: '\A[ABCFGHJKLMNPSTUVWXYZ]\d{4}\z'
337
+ format_evidence: statutory
338
+ charset:
339
+ letters: "the TWENTY letters of DD 132/2022 art. 3 — the 1993 list plus U"
340
+ notes: >-
341
+ The serial GRAMMAR is unchanged from 1993; only the alphabet widened
342
+ by one letter. A string beginning U can only be from this series,
343
+ which makes U the single character that dates a San Marino plate.
344
+ separator: none
345
+ design:
346
+ plate: { w: 390, h: 120, unit: mm, note: "REAR — unchanged (DD 132/2022 art. 2)" }
347
+ plate_front: { w: 300, h: 100, unit: mm, note: "FRONT — NEW, and the reason this is its own series: 'Le targhe anteriori degli autoveicoli hanno forma rettangolare delle dimensioni di 300 x 100 mm'" }
348
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "aluminium 1 mm with an adhesive vinyl retroreflective film — 'lamiera di alluminio dello spessore di mm 1 sul cui fronte è applicata una pellicola rifrangente vinilica adesiva'" }
349
+ foreground: "#005387"
350
+ foreground_note: >-
351
+ RAL 5017 from 1 July 2023 (DD 132/2022 art. 9(2)) — a NAMED COLOUR
352
+ STANDARD and therefore a genuine spec claim, unlike every other colour
353
+ in this microstates group. `hex_basis: ral-converted`: RAL 5017 is a
354
+ physical standard with no authoritative sRGB value, so the hex is a
355
+ conventional conversion and the RAL reference is the citable fact.
356
+ hex_basis: ral-converted
357
+ characters_front: { h: 62, w: 35, stroke: 8, unit: mm }
358
+ characters_rear: { h: 79, w: 45, stroke: 12.5, unit: mm }
359
+ border_front: { width: 3, stroke: 3, unit: mm, color: "#005387" }
360
+ border_rear: { width: 4, stroke: 4, unit: mm, color: "#005387" }
361
+ band: { side: none }
362
+ emblem: { present: true, rendered: placeholder, position: left, note: "arms in relief, in the Pantones of Allegato B to Legge Costituzionale 22 luglio 2011 n. 1; logotype per the manuale d'uso annexed to Regolamento 6 agosto 2012 n. 3. NEITHER ANNEX WAS FETCHED — recorded gap." }
363
+ legend: { text: "Repubblica di San Marino", color: "#000000", position: "beside the arms" }
364
+ rear_differs: true
365
+ rear_differs_note: >-
366
+ TRUE, and NEWLY so — this is the change that justifies a separate
367
+ series. From 2022 the front plate is 300x100 mm and the rear stays
368
+ 390x120 mm, where the 1993 series had one size for both. The stated
369
+ reason is practical rather than aesthetic: the smaller front plate fits
370
+ sports cars with shallow plate recesses.
371
+ region_encoding: none
372
+ notes: >-
373
+ THE CURRENT ORDINARY SERIES. Same letter+four-digit grammar as 1993, but a
374
+ smaller FRONT plate (300x100 mm), a twentieth letter (U), and RAL 5017
375
+ blue from 1 July 2023. Modelled as its own series because the design
376
+ changed, per PRD-PLATES §2.3. Overlaps sm-standard-1993 across the
377
+ 2022-2023 run-off, which is genuine parallel issuance provided for by the
378
+ decree itself. NOTE the motorcycle and moped series below are NOT split at
379
+ 2022, because their plate SIZE did not change — only character metrics and
380
+ the colour, both of which are dated design facts within one series. That
381
+ asymmetry is deliberate and is the §2.3 test applied consistently.
382
+ sources:
383
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # Decreto Delegato 16 settembre 2022 n. 132, artt. 2, 3, 9: front 300x100 and rear 390x120, the 20-letter alphabet, the run-off and the RAL 5017 date"
384
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17135320.html # ratification by the Consiglio Grande e Generale, 17 October 2022, Delibera n. 5"
385
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17135471.html # errata corrige of 26 October 2022 — corrects two entries in the art. 8 price table only; it does NOT touch dimensions, colour or dates"
386
+
387
+ - id: sm-standard-1986
388
+ class: standard
389
+ categories: [car, van, truck, bus]
390
+ period: { start: 1986, end: 1993 }
391
+ period_evidence: instrument-dated-both-ends
392
+ period_note: >-
393
+ START: Decreto 18 dicembre 1986 n. 151, "Istituzione di nuovo modello di
394
+ targa per i veicoli", published 22 December 1986. END: superseded by
395
+ Decreto 109/1993, whose art. 1 replaces art. 1 of the 1986 decree.
396
+ matching: strict
397
+ format:
398
+ pattern: "99999"
399
+ regex: '\A\d{1,5}\z'
400
+ format_evidence: statutory
401
+ format_note: >-
402
+ DIGITS ONLY — the decree says "Numeri di immatricolazione a rilievo di
403
+ colore blu", with no alphabetic character anywhere in the ordinary
404
+ series. That single word settles the pre-1993 format from primary text
405
+ rather than from observation. The WIDTH is inferred, not stated: art. 4
406
+ opens the series at 30.000 for motor cars, which implies five digits,
407
+ but no article states a digit count. `\d{1,5}` is the honest encoding.
408
+ progression: >-
409
+ Decreto 151/1986 art. 4 names the opening numbers in terms: "Le targhe di
410
+ cui agli articoli precedenti saranno adottate a partire dai seguenti
411
+ numeri di immatricolazione: - n. 30.000 per gli autoveicoli - n. 7.600
412
+ per motoveicoli - n. 900 per rimorchi - n. 01 Per Corpo Diplomatico". A
413
+ rare primary statement of series starting points.
414
+ design:
415
+ plate: { w: 390, h: 120, unit: mm }
416
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
417
+ foreground: "#003399"
418
+ characters: { h: 79, w: 45, stroke: 12.5, unit: mm }
419
+ revision_sticker: { present: true, diameter: 27, unit: mm, note: "'Cerchio a rilievo del diametro di mm. 27 destinato a contenere il talloncino di revisione' — abolished by Decreto 109/1993 art. 3" }
420
+ band: { side: none }
421
+ emblem: { present: true, rendered: placeholder, note: "arms in reflective colours (rosso, blu, verde, giallo e nero) plus the two-line legend" }
422
+ rear_differs: false
423
+ region_encoding: none
424
+ notes: >-
425
+ THE DIGITS-ONLY MODERN PLATE, and the instrument that DROPPED RSM from the
426
+ ordinary plate — see header finding 1. It also carried a raised 27 mm
427
+ circle for the revision sticker, a feature that existed only between 1986
428
+ and 1993. Its art. 2 is the origin of the CD, POLIZIA and R markings that
429
+ survive to this day.
430
+ sources:
431
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020523.html # Decreto 18 dicembre 1986 n. 151, artt. 1-4"
432
+
433
+ - id: sm-rsm-1922
434
+ class: standard
435
+ categories: [car, van, truck, bus, motorcycle]
436
+ period: { start: 1922, end: 1986 }
437
+ period_evidence: instrument-in-force-upper-bound
438
+ period_note: >-
439
+ START: Regolamento 6 marzo 1922 n. 13, "Norme generali sui veicoli e sulla
440
+ circolazione". Recorded as an UPPER bound on the start rather than a
441
+ certain origin — this is the earliest instrument reached, and whether any
442
+ earlier San Marino registration existed was not established. END: the
443
+ 1922 art. 11 third comma was replaced by Decreto 151/1986 art. 1.
444
+ matching: recall-only
445
+ format:
446
+ pattern: "RSM 999"
447
+ regex: '\ARSM[- ]?\d+\z'
448
+ format_evidence: statutory
449
+ format_note: >-
450
+ DELIBERATELY WIDE, hence `recall-only`. Art. 11 prescribes "l'indicazione
451
+ in azzurro su fondo bianco 'R.S.M.' ed il numero della licenza di
452
+ circolazione" — it names the components and gives their HEIGHT (10 cm,
453
+ stroke 1 cm) but never a digit count or ceiling, across a 64-year span.
454
+ A match is a shape hit and nothing more.
455
+ separator_note: >-
456
+ PRINTED WITH DOTS as "R.S.M.". U+002E FULL STOP is in
457
+ _meta/separators.yml's FORGIVING set but not its EMITTED set, so
458
+ PRD-PLATES §2.6 forbids writing it; the pattern spells "RSM" undotted
459
+ and a conformant consumer canonicalises a real "R.S.M. 123" to "RSM123",
460
+ which the separator-free twin matches. The same limitation as the Swiss
461
+ mid-height point.
462
+ design:
463
+ background: { color: "#FFFFFF", finish: non-reflective, hex_basis: observed }
464
+ foreground: "#0087DC"
465
+ foreground_note: "'in azzurro' — AZZURRO, a lighter blue than the 'blu' of every later decree. The distinction is in the instruments' own words and is preserved here rather than flattened."
466
+ characters: { h: 100, stroke: 10, unit: mm, note: "art. 11: 'Tali indicazioni devono avere l'altezza di cm. 10 e la grossezza delle linee deve essere di cm. 1'; motorcycles 6 cm high, 6 mm stroke" }
467
+ band: { side: none }
468
+ emblem: { present: false, note: "the 1922 provision lists only the RSM indication and the number — no arms" }
469
+ rear_differs: true
470
+ rear_differs_note: "art. 11 requires the indications to be REPEATED IN PAINT on the front of the vehicle — 'Sono ripetute a vernice nella parte anteriore del veicolo' — so the front was painted lettering, not a plate. Motorcycles carried a rear plate only."
471
+ region_encoding: none
472
+ notes: >-
473
+ THE ROOT SERIES, and the root INSTRUMENT: art. 11 of the 1922 Regolamento
474
+ is still the formal target of amendment a century later — DD 132/2022 art.
475
+ 2 operates by replacing "Il terzo comma dell'articolo 11 del Regolamento
476
+ 6 marzo 1922 n. 13". Modelled as one long series because no instrument
477
+ read draws a generation boundary inside it; secondary accounts describe
478
+ several plate generations between 1922 and 1986 and none of those
479
+ boundaries could be dated to an instrument, so none is asserted.
480
+ sources:
481
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17016996.html # Regolamento 6 marzo 1922 n. 13, art. 11 third comma"
482
+
483
+ # =========================================================================
484
+ # TWO-WHEELERS.
485
+ # =========================================================================
486
+ - id: sm-motorcycle-1993
487
+ class: motorcycle
488
+ categories: [motorcycle]
489
+ period: { start: 1993 }
490
+ period_evidence: instrument-in-force
491
+ matching: strict
492
+ format:
493
+ pattern: "L999"
494
+ regex: '\A[A-Z]\d{3}\z'
495
+ regex_strict: '\A[ABCFGHJKLMNPSTUVWXYZ]\d{3}\z'
496
+ format_evidence: statutory
497
+ charset:
498
+ notes: >-
499
+ THREE digits against the cars' four — the structural difference
500
+ between the two number spaces. `regex_strict` carries the CURRENT
501
+ 20-letter alphabet; between 1993 and 2022 it was the 19-letter list
502
+ without U, which is recorded here rather than split into a second
503
+ series because the plate SIZE never changed.
504
+ separator: none
505
+ design:
506
+ plate: { w: 165, h: 165, unit: mm, note: "square, unchanged from 1993 through the 2022 redesign — the reason this series is NOT split at 2022" }
507
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
508
+ foreground: "#005387"
509
+ hex_basis: ral-converted
510
+ characters_1993: { h: 59, w: 29, stroke: 7, unit: mm, note: "Decreto 109/1993 art. 1" }
511
+ characters_2022: { h: 60, w: 25.5, stroke: 8, unit: mm, note: "DD 132/2022 art. 2 — a metric revision within the same plate size" }
512
+ border: { width: 4, stroke: 4, unit: mm }
513
+ band: { side: none }
514
+ emblem: { present: true, rendered: placeholder }
515
+ rear_differs: false
516
+ display: "rear plate only — Legge 23/1989 art. 13"
517
+ region_encoding: none
518
+ notes: >-
519
+ MOTORCYCLES: a square 165x165 mm plate carrying a letter and THREE digits.
520
+ Modelled as one continuous series across the 2022 redesign because the
521
+ plate size did not change; the character metrics and the RAL 5017 colour
522
+ are dated design facts inside it. Contrast the car series, which IS split,
523
+ because its front plate shrank. This is the PRD-PLATES §2.3 test producing
524
+ different answers on the same reform for different vehicle classes.
525
+ sources:
526
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17021492.html # Decreto 109/1993 art. 1: 165x165 mm, letter + three digits"
527
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 2 (metrics) and art. 3 (alphabet)"
528
+
529
+ - id: sm-moped
530
+ class: moped
531
+ categories: [moped]
532
+ period: { start: 1993 }
533
+ period_evidence: instrument-in-force-upper-bound
534
+ period_note: >-
535
+ Decreto 15 aprile 1993 n. 58 extended the registration obligation to
536
+ ciclomotori. Its ORIGINAL text was not fetched in this pass — only its
537
+ 1997 amendment (Decreto 28 marzo 1997 n. 39, itself repealed in 2022) and
538
+ the current specification in DD 132/2022 art. 5. So 1993 is an upper bound
539
+ resting on the decree's existence and date rather than on its read text.
540
+ matching: strict
541
+ format:
542
+ pattern: "L999"
543
+ regex: '\A[A-Z]\d{3}\z'
544
+ regex_strict: '\A[ABCFGHJKLMNPSTUVWXYZ]\d{3}\z'
545
+ format_evidence: statutory
546
+ separator: none
547
+ design:
548
+ plate: { w: 115, h: 100, unit: mm, note: "DD 132/2022 art. 5 — the smallest plate in the San Marino system" }
549
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
550
+ foreground: "#005387"
551
+ hex_basis: ral-converted
552
+ characters: { h: 40, w: 20, stroke: 4, unit: mm }
553
+ emblem: { present: true, rendered: placeholder, note: "arms and logotype inside a raised rectangle 45 x 35 mm" }
554
+ band: { side: none }
555
+ rear_differs: false
556
+ region_encoding: none
557
+ notes: >-
558
+ CICLOMOTORI (mopeds). The current specification replaces art. 3 of Decreto
559
+ 58/1993 and shares the ordinary 20-letter alphabet — there is no dedicated
560
+ moped letter block in any instrument read, contrary to some secondary
561
+ accounts.
562
+ sources:
563
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 5, replacing art. 3 of Decreto 15 aprile 1993 n. 58"
564
+
565
+ # =========================================================================
566
+ # THE ELECTRIC SERIES — created and abolished, both by instrument. The
567
+ # cleanest instrument-dated-both-ends row in the microstates group.
568
+ # =========================================================================
569
+ - id: sm-electric-ve
570
+ class: electric
571
+ categories: [car, van]
572
+ period: { start: 2019, end: 2023 }
573
+ period_evidence: statutory-operative-date
574
+ period_note: >-
575
+ A TEXTBOOK CASE, and the reason `instrument-issue-date` exists as a tag.
576
+ Decreto Delegato 31 gennaio 2019 n. 22 is DATED 31 January 2019 and came
577
+ into force that day — but it does not start the series on its own date.
578
+ Its art. 4 (Decorrenza) says in terms: "Le targhe di immatricolazione dei
579
+ veicoli ad alimentazione elettrica saranno rilasciate a decorrere dal
580
+ 2 maggio 2019." THREE MONTHS LATER. Shipping 31 January 2019 as the series
581
+ start would be exactly the Spanish error, and the instrument itself
582
+ forbids it.
583
+ END: repealed by DD 132/2022 art. 10 on 16 September 2022, with existing
584
+ stock issuing until 30 June 2023 under art. 9(1). The series therefore
585
+ runs 2 May 2019 to 30 June 2023 at the latest, both ends instrument-fixed.
586
+ matching: strict
587
+ format:
588
+ pattern: "VE999"
589
+ regex: '\AVE[- ]?\d{3}\z'
590
+ format_evidence: statutory
591
+ charset:
592
+ notes: >-
593
+ THREE digits for cars, FOUR for motorcycles, THREE for mopeds — the
594
+ car series is the narrowest, which is unusual and is stated in art. 1
595
+ comma by comma.
596
+ design:
597
+ plate: { w: 390, h: 120, unit: mm, note: "front and rear alike — art. 1(2)" }
598
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "aluminium EN AW-1050A, 1 mm, with adhesive vinyl retroreflective film" }
599
+ foreground: "#4D7B2E"
600
+ foreground_note: >-
601
+ RAL 6018, named in the instrument: "di colore verde giallastro,
602
+ RAL 6018". A genuine spec claim, like the later RAL 5017.
603
+ `hex_basis: ral-converted` — the hex is a conventional conversion, the
604
+ RAL reference is the fact.
605
+ hex_basis: ral-converted
606
+ characters: { h: 79, w: 45, stroke: 12.5, unit: mm }
607
+ border: { width: 4, stroke: 4, unit: mm, color: "#4D7B2E" }
608
+ band: { side: none }
609
+ emblem: { present: true, rendered: placeholder }
610
+ rear_differs: false
611
+ region_encoding: none
612
+ notes: >-
613
+ GREEN PLATES FOR ELECTRIC VEHICLES, 2019-2023. The whole regime lasted
614
+ just over four years. Its art. 2 also made the PERSONALIZED series green
615
+ for electric vehicles — a colour variant of another series rather than a
616
+ series of its own, recorded on sm-personalized. Take-up was reported to be
617
+ very small, which is the stated reason for abolition; that figure is
618
+ journalistic and is not carried as data here.
619
+ sources:
620
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17106679.html # Decreto Delegato 31 gennaio 2019 n. 22, artt. 1, 2, 4 — the VE grammar, RAL 6018, and the 2 May 2019 issue date"
621
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 artt. 9(1) and 10 — repeal and run-off to 30 June 2023"
622
+
623
+ - id: sm-electric-ve-motorcycle
624
+ class: electric
625
+ categories: [motorcycle, moped]
626
+ period: { start: 2019, end: 2023 }
627
+ period_evidence: statutory-operative-date
628
+ matching: strict
629
+ format:
630
+ pattern: "VE9999"
631
+ regex: '\AVE[- ]?\d{4}\z'
632
+ format_evidence: statutory
633
+ format_note: "FOUR digits for motoveicoli, against three on the car series — art. 1(3). Mopeds took three digits on a 115x100 mm plate (art. 1(4))."
634
+ design:
635
+ plate: { w: 165, h: 165, unit: mm }
636
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
637
+ foreground: "#4D7B2E"
638
+ hex_basis: ral-converted
639
+ characters: { h: 60, w: 25.5, stroke: 8, unit: mm }
640
+ band: { side: none }
641
+ emblem: { present: true, rendered: placeholder }
642
+ rear_differs: false
643
+ region_encoding: none
644
+ notes: >-
645
+ The two-wheeler arm of the 2019-2023 electric regime, separated from
646
+ sm-electric-ve because the digit count and the plate size both differ.
647
+ Same instrument, same 2 May 2019 issue date, same 30 June 2023 run-off.
648
+ sources:
649
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17106679.html # DD 22/2019 art. 1(3)-(4) and art. 4"
650
+
651
+ # =========================================================================
652
+ # MARKED AND SPECIAL SERIES.
653
+ # =========================================================================
654
+ - id: sm-diplomatic-cd-1986
655
+ class: diplomatic
656
+ categories: [car, van]
657
+ period: { start: 1986 }
658
+ period_evidence: instrument-in-force
659
+ matching: strict
660
+ format:
661
+ pattern: "CD999"
662
+ regex: '\ACD[- ]?\d{1,3}\z'
663
+ format_evidence: statutory
664
+ format_note: >-
665
+ Decreto 151/1986 art. 2 lit. a: "Per il Corpo Diplomatico i numeri di
666
+ immatricolazione sono preceduti dalla sigla CD composta di lettere a
667
+ rilievo di colore blu". DD 132/2022 art. 4 lit. a fixes the count at
668
+ three and CHANGES THE SIGLA'S COLOUR TO RED: "i tre caratteri numerici
669
+ di colore blu sono preceduti dalla sigla CD composta da caratteri
670
+ alfabetici a rilievo di colore rosso." The digits stay blue.
671
+ design:
672
+ plate: { w: 390, h: 120, unit: mm }
673
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
674
+ foreground: "#005387"
675
+ hex_basis: ral-converted
676
+ sigla_colour: { value: "#CC0000", from: 2022, note: "CD in RED from DD 132/2022 art. 4 lit. a; blue before that (Decreto 151/1986 art. 2 lit. a)" }
677
+ band: { side: none }
678
+ emblem: { present: true, rendered: placeholder }
679
+ rear_differs: false
680
+ region_encoding: none
681
+ notes: >-
682
+ DIPLOMATIC CORPS. Numbering opened at 01 under Decreto 151/1986 art. 4.
683
+ The two-tone effect from 2022 — a red CD followed by blue digits — is
684
+ unusual and is stated in the instrument rather than observed.
685
+ sources:
686
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020523.html # Decreto 151/1986 art. 2 lit. a and art. 4"
687
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 4 lit. a — three digits and the red sigla"
688
+
689
+ - id: sm-diplomatic-cd-1976
690
+ class: diplomatic
691
+ categories: [car, van]
692
+ period: { start: 1976, end: 1986 }
693
+ period_evidence: instrument-dated-both-ends
694
+ period_note: >-
695
+ Decreto 7 ottobre 1976 n. 55, posted in the Pubblico Palazzo on 8 October
696
+ 1976, creates the CD plate; Decreto 151/1986 art. 2 replaces the
697
+ specification. The 1976 plate is a genuinely different object, not a
698
+ restyling — see the design block.
699
+ matching: strict
700
+ format:
701
+ pattern: "CD99"
702
+ regex: '\ACD[- ]?\d{1,2}\z'
703
+ format_evidence: statutory
704
+ format_note: "'Numeri con due cifre' — two digits, stated in terms."
705
+ design:
706
+ plate: { w: 486, h: 109, unit: mm, note: "the single-line 486x109 format, quite unlike the 390x120 ordinary plate of the period" }
707
+ background: { color: "#C8C8C0", finish: retroreflective, hex_basis: observed, spec_note: "'pellicola rifrangente termoadesiva di color grigio perla' — PEARL GREY, the only non-white ground in San Marino's plate history" }
708
+ foreground: "#003399"
709
+ layout: "left to right: RSM in blue (76 mm high, 15 mm stroke), the arms in a 50x75 mm rectangle in blue outlined red, CD in light blue (65 mm high, 19 mm stroke), then two blue digits (75 mm high, 15 mm stroke)"
710
+ sigla_colour:
711
+ value: "#4A90D9"
712
+ hex_basis: observed
713
+ note: >-
714
+ 'azzurro' — the CD sigla only; RSM and the digits are the darker
715
+ 'blu' (#003399) this entry's foreground already carries. Promoted
716
+ from the layout prose to a structured field so a renderer can read
717
+ the two-tone split (the same shape sm-diplomatic-cd-1986 uses for
718
+ its own, later, red sigla). Evidence: derived from the decreto's own
719
+ wording, Decreto 7 ottobre 1976 n. 55 articolo unico.
720
+ band: { side: none }
721
+ emblem: { present: true, rendered: placeholder }
722
+ rear_differs: false
723
+ rear_differs_note: "'Saranno dello stesso tipo sia la targa anteriore che quella posteriore.'"
724
+ region_encoding: none
725
+ notes: >-
726
+ THE 1976 DIPLOMATIC PLATE — pearl grey, 486x109 mm, and one of only two
727
+ places RSM survived on a San Marino plate after the ordinary series
728
+ dropped it (the other being the 2006 historic plate). It also used TWO
729
+ shades of blue at once: "blu" for RSM and the digits, "azzurro" for the CD
730
+ sigla. Recorded because it is the sharpest counterexample to the idea that
731
+ San Marino has always used one plate design.
732
+ sources:
733
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17019324.html # Decreto 7 ottobre 1976 n. 55, articolo unico"
734
+
735
+ - id: sm-police
736
+ class: police
737
+ categories: [car, van, motorcycle]
738
+ period: { start: 1986 }
739
+ period_evidence: instrument-in-force
740
+ matching: strict
741
+ format:
742
+ pattern: "999"
743
+ regex: '\A\d{1,3}\z'
744
+ printed_form: "POLIZIA 999"
745
+ format_evidence: statutory
746
+ format_note: >-
747
+ THE SERIAL IS THE THREE DIGITS; "POLIZIA" IS PLATE FURNITURE, and the
748
+ instrument supports that reading rather than merely permitting it. DD
749
+ 132/2022 art. 4 lit. b describes the word as "iscritta in un rettangolo
750
+ a rilievo" — inscribed in a RAISED RECTANGLE — of 80x29 mm on the front
751
+ plate and 103x37 mm on the rear, with a 3 mm stroke. A badge whose size
752
+ differs between the front and rear plates is not a serial character; it
753
+ is a device, like the arms. Decreto 151/1986 art. 2 lit. b had a single
754
+ 95x37 mm rectangle.
755
+ SECOND REASON, and it is the honest one: the human-pattern DSL cannot
756
+ spell a literal "L" — the lint reads every L in a pattern as "any
757
+ letter", so "POLIZIA 999" would generate "POIIZIA 692". Even had the
758
+ word been serial-significant it could not be written here. See
759
+ li.yml's common.pattern_dsl_limitation for the same problem in a case
760
+ where it genuinely hurt. `printed_form` records what a human reads off
761
+ the plate, so nothing is lost.
762
+ matching_caveat: >-
763
+ A CONSEQUENCE A CONSUMER MUST SEE: with POLIZIA out of the serial, this
764
+ series' regex is three digits and is therefore NOT DISCRIMINATIVE — it
765
+ will match any short numeric string, including a Monegasque plate. The
766
+ series is identified by the plate's furniture and colour, not by its
767
+ string. `matching: strict` is still correct (the regex lies inside the
768
+ issuing grammar), but a match is worth very little on its own.
769
+ design:
770
+ plate: { w: 390, h: 120, unit: mm }
771
+ plate_front: { w: 300, h: 100, unit: mm, note: "follows the 2022 ordinary front size" }
772
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
773
+ foreground: "#005387"
774
+ hex_basis: ral-converted
775
+ legend: { text: "POLIZIA", color: "#CC0000", in_relief_rectangle: true, front: { w: 80, h: 29, unit: mm }, rear: { w: 103, h: 37, unit: mm } }
776
+ band: { side: none }
777
+ emblem: { present: true, rendered: placeholder }
778
+ rear_differs: true
779
+ rear_differs_note: "TRUE and doubly so from 2022 — different plate size AND a different POLIZIA rectangle size front and rear."
780
+ region_encoding: none
781
+ notes: >-
782
+ POLICE. ONE SERIES COVERS ALL THE CORPS: the current text says "Corpi di
783
+ Polizia" in the plural and prescribes a single POLIZIA legend. That is why
784
+ no separate Gendarmeria or Guardia di Rocca series appears in this file —
785
+ see common.not_modelled, where the absence of a GE instrument is recorded
786
+ as a searched-for negative rather than an oversight.
787
+ sources:
788
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 art. 4 lit. b"
789
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020523.html # Decreto 151/1986 art. 2 lit. b and art. 3"
790
+
791
+ - id: sm-redcross-crs
792
+ class: government
793
+ categories: [car, van, ambulance]
794
+ period: { start: 1989 }
795
+ period_evidence: instrument-in-force
796
+ period_note: >-
797
+ Unusually, this series is created by the ENABLING ACT itself rather than
798
+ by a decree under it — Legge 23/1989 art. 13, which otherwise deals with
799
+ where plates are mounted.
800
+ matching: strict
801
+ format:
802
+ pattern: "CRS 999"
803
+ regex: '\ACRS[- ]?\d{1,3}\z'
804
+ format_evidence: statutory
805
+ format_note: >-
806
+ Legge 23/1989 art. 13: vehicles of the Croce Rossa Sammarinese entered
807
+ in a dedicated register carry plates on the Decreto 151/1986 model "con
808
+ i numeri di immatricolazione e la sigla CRS di colore rosso." Both the
809
+ sigla AND the digits are red, unlike the diplomatic series where only
810
+ the sigla is. No digit count is stated; \d{1,3} is a practical bound.
811
+ design:
812
+ plate: { w: 390, h: 120, unit: mm }
813
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
814
+ foreground: "#CC0000"
815
+ foreground_note: "RED characters — sigla and digits alike, per the statute's own wording"
816
+ band: { side: none }
817
+ emblem: { present: true, rendered: placeholder }
818
+ rear_differs: false
819
+ region_encoding: none
820
+ notes: >-
821
+ SAMMARINESE RED CROSS. Class `government` under _meta/classes.yml as a
822
+ civil body fleet with a distinct series; it is not `police` and not
823
+ `military`. The red-on-white scheme is shared with no other current San
824
+ Marino series.
825
+ sources:
826
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020838.html # Legge 10 marzo 1989 n. 23 art. 13"
827
+
828
+ - id: sm-trailer-r
829
+ class: trailer
830
+ categories: [trailer, semitrailer]
831
+ period: { start: 1986 }
832
+ period_evidence: instrument-in-force
833
+ matching: strict
834
+ format:
835
+ pattern: "R9999"
836
+ regex: '\AR[- ]?\d{1,4}\z'
837
+ format_evidence: statutory
838
+ format_note: >-
839
+ Decreto 151/1986 art. 2 lit. c: "Per i rimorchi i numeri di
840
+ immatricolazione sono preceduti dalla lettera 'R' a rilievo di colore
841
+ rosso dell'altezza di mm. 79, larghezza mm. 45 e con il tratto di mm.
842
+ 12,5." This is why R is excluded from the ordinary alphabet — a
843
+ FUNCTIONAL reservation, not a legibility exclusion.
844
+ design:
845
+ plate: { w: 390, h: 120, unit: mm }
846
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
847
+ foreground: "#005387"
848
+ hex_basis: ral-converted
849
+ sigla_colour: { value: "#CC0000", note: "the R is RED; the digits are blue" }
850
+ band: { side: none }
851
+ emblem: { present: true, rendered: placeholder }
852
+ rear_differs: false
853
+ display: "rear only — Legge 23/1989 art. 13"
854
+ region_encoding: none
855
+ notes: >-
856
+ TRAILERS. Numbering opened at 900 (Decreto 151/1986 art. 4). A separate
857
+ REPEATER plate exists for carrelli appendice — a small red R, 21 mm high
858
+ and 11 mm wide, on a plate repeating the towing vehicle's number (art. 2
859
+ lit. d, and Legge 23/1989 art. 13). The repeater is recorded here rather
860
+ than as its own series because it carries no independent number.
861
+ sources:
862
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17020523.html # Decreto 151/1986 art. 2 lit. c-d, art. 4"
863
+
864
+ - id: sm-prova
865
+ class: dealer
866
+ categories: [car, van, truck, motorcycle]
867
+ period: { start: 2007 }
868
+ period_evidence: instrument-in-force
869
+ period_note: >-
870
+ The current SPECIFICATION dates from Decreto Delegato 23 luglio 2007
871
+ n. 87, which replaces art. 3 of Legge 19 settembre 1973 n. 31. The test-
872
+ plate REGIME is much older — Legge 31/1973, published 24 September 1973 —
873
+ so 2007 dates this plate's design, not the institution. The 1973 statute
874
+ was located but its plate article was read only through the 2007
875
+ replacement, so no earlier series is asserted.
876
+ matching: strict
877
+ format:
878
+ pattern: "PROVA 999"
879
+ regex: '\APROVA[- ]?\d{1,3}\z'
880
+ format_evidence: statutory
881
+ format_note: "three digits for cars, two for motorcycles (art. 1)"
882
+ design:
883
+ plate: { w: 390, h: 120, unit: mm, note: "motorcycle test plate 164x164 mm — note NOT 165x165 like the ordinary motorcycle plate" }
884
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
885
+ foreground: "#000000"
886
+ foreground_note: "BLACK, not blue — the test plate is the only current San Marino series with black characters"
887
+ legend: { text: "PROVA", color: "#000000", w: 97, h: 37, stroke: 4, unit: mm }
888
+ border: { color: "#000000", stroke: 5, unit: mm }
889
+ band: { side: none }
890
+ emblem: { present: true, rendered: placeholder, note: "arms with the two-line legend in blue relief at the left" }
891
+ rear_differs: false
892
+ region_encoding: none
893
+ notes: >-
894
+ TEST / TRADE PLATES. Transferable between vehicles by the instrument's own
895
+ words — "La targa è trasferibile da veicolo a veicolo" — which is what
896
+ makes the class `dealer` rather than `temporary`. A bilateral Italy-San
897
+ Marino arrangement on test-plate recognition is reported to have taken
898
+ effect 1 May 1995; that agreement was NOT located in this pass and is not
899
+ cited.
900
+ sources:
901
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17023571.html # Decreto Delegato 23 luglio 2007 n. 87 art. 1, replacing art. 3 of Legge 19 settembre 1973 n. 31"
902
+
903
+ - id: sm-export-e
904
+ class: export
905
+ categories: [car, van, truck, motorcycle]
906
+ period: { start: 1990 }
907
+ period_evidence: instrument-in-force
908
+ matching: strict
909
+ format:
910
+ pattern: "E9999"
911
+ regex: '\AE[- ]?\d{1,4}\z'
912
+ format_evidence: statutory
913
+ format_note: >-
914
+ Decreto 20 febbraio 1990 n. 34 art. 1: provisional plates for vehicles
915
+ struck off the register "per esportazione all'estero" carry a RED letter
916
+ E (79 mm high on cars, 53 mm on motorcycles) followed by BLACK digits.
917
+ This is why E is excluded from the ordinary alphabet — the second
918
+ functional reservation, alongside R.
919
+ successor_format: >-
920
+ A CHANGE IS PENDING AND ITS TRIGGER IS NOT A DATE. Decreto Delegato
921
+ 27 luglio 2026 n. 96 amends the grammar to a black number, then the red
922
+ E, then three black digits — and commences it on EXHAUSTION rather than
923
+ on a calendar date: "sono rilasciate a seguito dell'assegnazione
924
+ dell'ultima targa con la sigla della composizione attuale." No new
925
+ series is opened here because no start date exists yet to open it on;
926
+ recorded so a verifier can open one when the rollover occurs. This is
927
+ also the only exhaustion-triggered rollover written into San Marino law
928
+ — see common.progression.letter_rollover_gap.
929
+ design:
930
+ plate: { w: 390, h: 120, unit: mm, note: "same dimensions as the Decreto 151/1986 ordinary plate, which the decree adopts by reference" }
931
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
932
+ foreground: "#000000"
933
+ foreground_note: "BLACK digits and black border — and the arms and legend are rendered 'in bianco e nero', the only monochrome arms in the system"
934
+ sigla_colour: { value: "#CC0000", note: "the E is red" }
935
+ expiry_sticker: { present: true, note: "'Su entrambi i tipi di targa va applicato un talloncino contenente i dati relativi alla scadenza'" }
936
+ band: { side: none }
937
+ emblem: { present: true, rendered: placeholder, note: "arms in BLACK AND WHITE" }
938
+ rear_differs: false
939
+ region_encoding: none
940
+ notes: >-
941
+ EXPORT / PROVISIONAL PLATES for vehicles leaving San Marino permanently.
942
+ Distinguished from every other series by monochrome arms and black
943
+ characters. Still live and still being amended in 2026.
944
+ sources:
945
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17020984.html # Decreto 20 febbraio 1990 n. 34 art. 1"
946
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17159835.html # Decreto Delegato 27 luglio 2026 n. 96, articolo unico — the pending grammar change and its exhaustion trigger"
947
+
948
+ - id: sm-historic-h
949
+ class: historic
950
+ categories: [car, van, motorcycle]
951
+ period: { start: 2006 }
952
+ period_evidence: instrument-in-force
953
+ matching: strict
954
+ format:
955
+ pattern: "H999"
956
+ regex: '\AH[- ]?\d{3}\z'
957
+ format_evidence: statutory
958
+ format_note: >-
959
+ A RED H followed by three BLUE digits, with RSM in blue also on the
960
+ plate — one of only two places RSM survives on a San Marino plate. The
961
+ front plate reads H, digits, RSM on one line; the rear puts RSM on the
962
+ upper row and the H plus digits on the lower.
963
+ design:
964
+ plate: { w: 267, h: 63, unit: mm, note: "FRONT — 267x63 mm" }
965
+ plate_rear: { w: 280.8, h: 203.6, unit: mm, note: "REAR — 280.8x203.6 mm, a tall near-square, and the most unusual plate geometry in this file" }
966
+ background: { color: "#FFF4C1", finish: retroreflective, hex_basis: observed, spec_note: "'pellicola riflettente con effetto ingiallente' — a deliberately YELLOWING film, evoking aged plates. A striking spec: the instrument prescribes the appearance of age." }
967
+ foreground: "#003399"
968
+ sigla_colour: { value: "#CC0000", note: "the H is red" }
969
+ legend:
970
+ text: "RSM"
971
+ color: "#003399"
972
+ position: >-
973
+ front: on the single line with the H and digits; rear: RSM alone on
974
+ the upper row, H plus digits on the lower. Promoted from format_note
975
+ prose to the structured field the ordinary series already use for
976
+ "Repubblica di San Marino", so a renderer finds it. Evidence:
977
+ derived from Decreto 15 marzo 2006 n. 65 art. 2 (this entry's own
978
+ cited instrument).
979
+ band: { side: none }
980
+ emblem: { present: true, rendered: placeholder, note: "a STYLISED arms in red and blue on the rear plate, not the full-colour arms of the ordinary series" }
981
+ rear_differs: true
982
+ rear_differs_note: "TRUE and dramatically so: 267x63 mm front against 280.8x203.6 mm rear, with different layouts."
983
+ region_encoding: none
984
+ notes: >-
985
+ HISTORIC / COLLECTOR VEHICLES, from 2006. Issued by the Ufficio Registro
986
+ Automezzi on the application of the Automobile Club San Marino /
987
+ Automotoclub Storico Sammarinese under Legge 16 gennaio 1997 n. 8. The
988
+ design deliberately evokes the pre-1976 plate, including the return of
989
+ RSM. Motorcycles take the 165x165 mm square.
990
+ sources:
991
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17023371.html # Decreto 15 marzo 2006 n. 65 art. 2"
992
+
993
+ - id: sm-agricultural-ma
994
+ class: agricultural
995
+ categories: [tractor, machine, trailer]
996
+ period: { start: 1990 }
997
+ period_evidence: instrument-in-force
998
+ matching: strict
999
+ format:
1000
+ pattern: "MA 9999"
1001
+ regex: '\AMA[- ]?\d{1,4}\z'
1002
+ format_evidence: statutory
1003
+ separator_note: >-
1004
+ PRINTED WITH DOTS as "M.A.". As with the 1922 RSM series, U+002E is
1005
+ forgiving-but-not-emitted under PRD-PLATES §2.6, so the pattern spells
1006
+ "MA" undotted and a conformant consumer canonicalises correctly.
1007
+ progression: "Decreto 47/1990 art. 2: numbering adopted from 1010 for macchine agricole"
1008
+ design:
1009
+ plate: { w: 165, h: 165, unit: mm }
1010
+ background: { color: "#FFD700", finish: retroreflective, hex_basis: observed, spec_note: "YELLOW reflective film — 'pellicola rifrangente di colore giallo'" }
1011
+ foreground: "#000000"
1012
+ foreground_note: "BLACK arms, legend, letters and digits on yellow"
1013
+ band: { side: none }
1014
+ emblem: { present: true, rendered: placeholder }
1015
+ rear_differs: false
1016
+ region_encoding: none
1017
+ notes: >-
1018
+ MACCHINE AGRICOLE. Yellow ground with black characters — the only yellow
1019
+ plate in the San Marino system, and the sibling of sm-machinery-mo, which
1020
+ the same decree creates in white and green.
1021
+ sources:
1022
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17020997.html # Decreto 19 aprile 1990 n. 47 artt. 1-2"
1023
+
1024
+ - id: sm-machinery-mo
1025
+ class: agricultural
1026
+ categories: [machine]
1027
+ period: { start: 1990 }
1028
+ period_evidence: instrument-in-force
1029
+ matching: strict
1030
+ format:
1031
+ pattern: "MO 9999"
1032
+ regex: '\AMO[- ]?\d{1,4}\z'
1033
+ format_evidence: statutory
1034
+ separator_note: "printed with dots as 'M.O.' — see sm-agricultural-ma"
1035
+ progression: "Decreto 47/1990 art. 2: numbering adopted from 0001 for macchine operatrici"
1036
+ design:
1037
+ plate: { w: 165, h: 165, unit: mm }
1038
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
1039
+ foreground: "#008000"
1040
+ foreground_note: "GREEN arms, legend, letters, digits and border on white — the only green-on-white series"
1041
+ band: { side: none }
1042
+ emblem: { present: true, rendered: placeholder }
1043
+ rear_differs: false
1044
+ region_encoding: none
1045
+ notes: >-
1046
+ MACCHINE OPERATRICI — construction and works machinery. Created by the
1047
+ same 1990 decree as the agricultural plate and deliberately contrasted
1048
+ with it: white ground with green characters against yellow ground with
1049
+ black. Class `agricultural` is the closest fit in _meta/classes.yml, which
1050
+ has no separate works-machinery class; the categories field carries the
1051
+ real distinction.
1052
+ sources:
1053
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17020997.html # Decreto 19 aprile 1990 n. 47 artt. 1-2"
1054
+
1055
+ - id: sm-personalized
1056
+ class: personalized
1057
+ categories: [car, van]
1058
+ period: { start: 2003 }
1059
+ period_evidence: instrument-in-force
1060
+ period_note: >-
1061
+ 2003, NOT 2004. Decreto 11 novembre 2003 n. 149 creates the special
1062
+ series; Decreto 26 luglio 2004 n. 107 merely widens its grammar. Secondary
1063
+ accounts date the scheme to 2004, which is the amending instrument rather
1064
+ than the creating one — a small instance of the same error class the
1065
+ period discipline exists to catch.
1066
+ matching: recall-only
1067
+ format:
1068
+ pattern: "LL999"
1069
+ regex: '\A[A-Z0-9]{5}\z'
1070
+ format_evidence: statutory
1071
+ format_note: >-
1072
+ DELIBERATELY WIDE, hence `recall-only`. The grammar has been rewritten
1073
+ three times and is now a CONSTRAINT rather than a template: DD 132/2022
1074
+ art. 6 replaced the enumerated patterns with "La serie alfanumerica
1075
+ speciale deve essere composta obbligatoriamente da almeno due caratteri
1076
+ alfabetici ed almeno da un carattere numerico." A five-character
1077
+ alphanumeric regex is the honest encoding of that; it accepts strings
1078
+ the rule forbids (e.g. one letter and four digits), so a match is a
1079
+ shape hit and not a validity claim.
1080
+ grammar_history:
1081
+ - "2003 (Decreto 149/2003 art. 1, 3): five characters, in the shapes AAA00-ZZZ99, AAAAA-ZZZZZ, AA00A-AA00Z, AAAA0-ZZZZ9"
1082
+ - "2004 (Decreto 107/2004 art. 5): eleven enumerated shapes; art. 4 drops O and Q from the letter set"
1083
+ - "2022 (DD 132/2022 art. 6): the enumeration is abolished in favour of the two-letters-and-one-digit minimum quoted above"
1084
+ reserved_strings:
1085
+ values: [POLIZIA, POL, CRS, CD, RSM, SMR]
1086
+ rule: >-
1087
+ Decreto 149/2003 art. 2: a special series may not form, even
1088
+ partially, words or acronyms reserved to other uses — naming POLIZIA,
1089
+ POL, CRS, CD, RSM and SMR — "salvo che il richiedente sia legittimato
1090
+ o autorizzato all'utilizzo dei relativi veicoli", nor anything
1091
+ contrary to public decency or resembling the ordinary series.
1092
+ design:
1093
+ plate: { w: 390, h: 120, unit: mm }
1094
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
1095
+ foreground: "#005387"
1096
+ hex_basis: ral-converted
1097
+ band: { side: none }
1098
+ emblem: { present: true, rendered: placeholder }
1099
+ rear_differs: true
1100
+ rear_differs_note: "follows the ordinary series — 300x100 front, 390x120 rear, from 2022"
1101
+ colour_variant:
1102
+ note: >-
1103
+ Between 2019 and 2023 a personalized plate on an ELECTRIC vehicle was
1104
+ issued in green rather than blue — DD 22/2019 art. 2: "la serie
1105
+ alfanumerica speciale scelta ed il bordo perimetrale saranno di colore
1106
+ verde." A colour-only variant of the same format and period, so a
1107
+ sub-entry here rather than its own series, per PRD-PLATES §2.3.
1108
+ region_encoding: none
1109
+ notes: >-
1110
+ PERSONALIZED PLATES, from 2003. Priced at EUR 750 initially and EUR 900 a
1111
+ pair under DD 132/2022 art. 8. Distinct from the RESERVATION right of DD
1112
+ 132/2022 art. 7, which lets a buyer book an ordinary-series number within
1113
+ the next 400 or 1,000 numbers for EUR 50 or EUR 100 — that is a booking
1114
+ mechanism on the ordinary series, not a series of its own, and is not
1115
+ modelled.
1116
+ sources:
1117
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17022923.html # Decreto 11 novembre 2003 n. 149 artt. 1-4"
1118
+ - "https://www.consigliograndeegenerale.sm/on-line/home/archivio-leggi-decreti-e-regolamenti/documento17023036.html # Decreto 26 luglio 2004 n. 107 artt. 4-5"
1119
+ - "https://www.consigliograndeegenerale.sm/on-line/home/documento17134662.html # DD 132/2022 artt. 6-8"