vehicles 0.6.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 (186) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +274 -0
  4. data/README.md +55 -10
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +5 -4
  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/fr-departements.yml +191 -0
  14. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  15. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  16. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  17. data/data/plates/_decode/hr-cities.yml +315 -0
  18. data/data/plates/_decode/ie-counties.yml +227 -0
  19. data/data/plates/_decode/in-state-codes.yml +169 -0
  20. data/data/plates/_decode/is-districts-1938.yml +116 -0
  21. data/data/plates/_decode/it-provinces.yml +348 -0
  22. data/data/plates/_decode/jp-office-marks.yml +960 -0
  23. data/data/plates/_decode/jp-use-marks.yml +205 -0
  24. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  25. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  26. data/data/plates/_decode/lu-series-order.yml +638 -0
  27. data/data/plates/_decode/mx-entity-series.yml +380 -0
  28. data/data/plates/_decode/my-index-marks.yml +271 -0
  29. data/data/plates/_decode/no-counties-1913.yml +148 -0
  30. data/data/plates/_decode/no-districts.yml +901 -0
  31. data/data/plates/_decode/pl-powiats.yml +567 -0
  32. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  33. data/data/plates/_decode/ro-counties.yml +213 -0
  34. data/data/plates/_decode/se-diplomatic.yml +220 -0
  35. data/data/plates/_decode/si-regions.yml +123 -0
  36. data/data/plates/_decode/sk-districts.yml +314 -0
  37. data/data/plates/_decode/th-registration-elements.yml +208 -0
  38. data/data/plates/_decode/ua-regions.yml +393 -0
  39. data/data/plates/_decode/za-licence-marks.yml +215 -0
  40. data/data/plates/_meta/classes.yml +1 -0
  41. data/data/plates/_meta/separators.yml +102 -0
  42. data/data/plates/ad.yml +961 -0
  43. data/data/plates/ar.yml +762 -0
  44. data/data/plates/at.yml +1424 -0
  45. data/data/plates/au-act.yml +472 -0
  46. data/data/plates/au-nsw.yml +282 -0
  47. data/data/plates/au-nt.yml +431 -0
  48. data/data/plates/au-qld.yml +272 -0
  49. data/data/plates/au-sa.yml +248 -0
  50. data/data/plates/au-tas.yml +302 -0
  51. data/data/plates/au-vic.yml +215 -0
  52. data/data/plates/au-wa.yml +309 -0
  53. data/data/plates/be.yml +1840 -0
  54. data/data/plates/br.yml +1152 -0
  55. data/data/plates/ca-ab.yml +430 -0
  56. data/data/plates/ca-bc.yml +697 -0
  57. data/data/plates/ca-mb.yml +499 -0
  58. data/data/plates/ca-nb.yml +537 -0
  59. data/data/plates/ca-nl.yml +743 -0
  60. data/data/plates/ca-ns.yml +808 -0
  61. data/data/plates/ca-nt.yml +610 -0
  62. data/data/plates/ca-nu.yml +280 -0
  63. data/data/plates/ca-on.yml +881 -0
  64. data/data/plates/ca-pe.yml +592 -0
  65. data/data/plates/ca-qc.yml +1036 -0
  66. data/data/plates/ca-sk.yml +256 -0
  67. data/data/plates/ca-yt.yml +656 -0
  68. data/data/plates/ch.yml +1273 -0
  69. data/data/plates/cn.yml +1431 -0
  70. data/data/plates/cy.yml +688 -0
  71. data/data/plates/cz.yml +1179 -0
  72. data/data/plates/de.yml +553 -118
  73. data/data/plates/dk.yml +1647 -0
  74. data/data/plates/ee.yml +1275 -0
  75. data/data/plates/es.yml +228 -32
  76. data/data/plates/fi.yml +1271 -0
  77. data/data/plates/fr.yml +1265 -0
  78. data/data/plates/gb.yml +1188 -0
  79. data/data/plates/gr.yml +721 -0
  80. data/data/plates/hr.yml +860 -0
  81. data/data/plates/hu.yml +959 -0
  82. data/data/plates/ie.yml +775 -0
  83. data/data/plates/in.yml +1172 -0
  84. data/data/plates/is.yml +667 -0
  85. data/data/plates/it.yml +1317 -0
  86. data/data/plates/jp.yml +3650 -0
  87. data/data/plates/kr.yml +1375 -0
  88. data/data/plates/li.yml +1010 -0
  89. data/data/plates/lt.yml +879 -0
  90. data/data/plates/lu.yml +842 -0
  91. data/data/plates/lv.yml +924 -0
  92. data/data/plates/mc.yml +1024 -0
  93. data/data/plates/mt.yml +854 -0
  94. data/data/plates/mx.yml +1372 -0
  95. data/data/plates/my.yml +685 -0
  96. data/data/plates/nl.yml +44 -0
  97. data/data/plates/no.yml +1018 -0
  98. data/data/plates/nz.yml +1699 -0
  99. data/data/plates/pl.yml +1296 -0
  100. data/data/plates/pt.yml +847 -0
  101. data/data/plates/ro.yml +785 -0
  102. data/data/plates/se.yml +1091 -0
  103. data/data/plates/si.yml +1105 -0
  104. data/data/plates/sk.yml +1439 -0
  105. data/data/plates/sm.yml +1119 -0
  106. data/data/plates/th.yml +1150 -0
  107. data/data/plates/ua.yml +1672 -0
  108. data/data/plates/us-ak.yml +763 -0
  109. data/data/plates/us-al.yml +457 -0
  110. data/data/plates/us-ar.yml +427 -0
  111. data/data/plates/us-as.yml +454 -0
  112. data/data/plates/us-az.yml +430 -0
  113. data/data/plates/us-ca.yml +892 -0
  114. data/data/plates/us-co.yml +452 -0
  115. data/data/plates/us-ct.yml +427 -0
  116. data/data/plates/us-dc.yml +614 -0
  117. data/data/plates/us-de.yml +551 -0
  118. data/data/plates/us-fl.yml +319 -96
  119. data/data/plates/us-ga.yml +644 -0
  120. data/data/plates/us-gu.yml +658 -0
  121. data/data/plates/us-hi.yml +585 -0
  122. data/data/plates/us-ia.yml +438 -0
  123. data/data/plates/us-id.yml +531 -0
  124. data/data/plates/us-il.yml +516 -0
  125. data/data/plates/us-in.yml +324 -0
  126. data/data/plates/us-ks.yml +351 -0
  127. data/data/plates/us-ky.yml +770 -0
  128. data/data/plates/us-la.yml +568 -0
  129. data/data/plates/us-ma.yml +379 -0
  130. data/data/plates/us-md.yml +536 -0
  131. data/data/plates/us-me.yml +445 -0
  132. data/data/plates/us-mi.yml +408 -0
  133. data/data/plates/us-mn.yml +411 -0
  134. data/data/plates/us-mo.yml +356 -0
  135. data/data/plates/us-mp.yml +402 -0
  136. data/data/plates/us-ms.yml +432 -0
  137. data/data/plates/us-mt.yml +619 -0
  138. data/data/plates/us-nc.yml +602 -0
  139. data/data/plates/us-nd.yml +419 -0
  140. data/data/plates/us-ne.yml +483 -0
  141. data/data/plates/us-nh.yml +394 -0
  142. data/data/plates/us-nj.yml +547 -0
  143. data/data/plates/us-nm.yml +574 -0
  144. data/data/plates/us-nv.yml +655 -0
  145. data/data/plates/us-ny.yml +592 -0
  146. data/data/plates/us-oh.yml +404 -0
  147. data/data/plates/us-ok.yml +513 -0
  148. data/data/plates/us-or.yml +392 -0
  149. data/data/plates/us-pa.yml +506 -0
  150. data/data/plates/us-pr.yml +507 -0
  151. data/data/plates/us-ri.yml +445 -0
  152. data/data/plates/us-sc.yml +605 -0
  153. data/data/plates/us-sd.yml +428 -0
  154. data/data/plates/us-tn.yml +471 -0
  155. data/data/plates/us-tx.yml +535 -0
  156. data/data/plates/us-ut.yml +384 -0
  157. data/data/plates/us-va.yml +567 -0
  158. data/data/plates/us-vi.yml +489 -0
  159. data/data/plates/us-vt.yml +458 -0
  160. data/data/plates/us-wa.yml +484 -0
  161. data/data/plates/us-wi.yml +509 -0
  162. data/data/plates/us-wv.yml +446 -0
  163. data/data/plates/us-wy.yml +523 -0
  164. data/data/plates/va.yml +604 -0
  165. data/data/plates/za.yml +1141 -0
  166. data/data/vehicles.json +160653 -105090
  167. data/lib/vehicles/configuration.rb +17 -3
  168. data/lib/vehicles/dataset.rb +73 -18
  169. data/lib/vehicles/fuzzy.rb +115 -0
  170. data/lib/vehicles/http.rb +48 -0
  171. data/lib/vehicles/make.rb +36 -6
  172. data/lib/vehicles/mcp_server.rb +5 -5
  173. data/lib/vehicles/model.rb +21 -2
  174. data/lib/vehicles/plates/series.rb +172 -18
  175. data/lib/vehicles/plates/template_fill.rb +188 -0
  176. data/lib/vehicles/plates/templates.rb +162 -0
  177. data/lib/vehicles/plates.rb +12 -0
  178. data/lib/vehicles/providers/hosted_provider.rb +28 -55
  179. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  180. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  181. data/lib/vehicles/version.rb +1 -1
  182. data/lib/vehicles.rb +32 -16
  183. data/rakelib/data_refresh.rake +109 -0
  184. data/rakelib/plates_refresh.rake +29 -0
  185. data/sig/vehicles.rbs +18 -0
  186. metadata +164 -2
@@ -0,0 +1,1024 @@
1
+ # plates/mc.yml — Monaco (PRD-PLATES gate L1, microstates group).
2
+ # DRAFT for verification. All primary text fetched from legimonaco.mc and the
3
+ # Journal de Monaco archive, 2026-08-02.
4
+ #
5
+ # ---------------------------------------------------------------------------
6
+ # MONACO IS A SOVEREIGN STATE AND ITS PLATES ARE ITS OWN. It is not part of
7
+ # France, not in the EU, and registers vehicles under its own law through the
8
+ # Service des Titres de Circulation. It IS in customs union with France — the
9
+ # "convention douanière franco-monégasque du 13 mai 1963", cited by name in the
10
+ # plate instrument itself — and it acceded to the 1968 Vienna Convention on
11
+ # Road Traffic in its own right (ratified 6 June 1978, in force for Monaco
12
+ # 6 June 1979).
13
+ #
14
+ # THE TWO-INSTRUMENT STRUCTURE, which is the key to reading this file:
15
+ # * Ordonnance Souveraine n° 1.691 du 17 décembre 1957 portant réglementation
16
+ # de la police de la circulation routière (the Code de la route), JdM du
17
+ # 30 décembre 1957 — REQUIRES plates and DELEGATES their design. Art. 94:
18
+ # "Les plaques d'immatriculation sont remises aux propriétaires de véhicules
19
+ # automobiles par le Service des titres de la circulation suivant les
20
+ # modalités prescrites par un arrêté du Ministre d'État qui en détermine
21
+ # également le modèle et le mode de pose." The Code de la route therefore
22
+ # says NOTHING about format, colour or dimensions. Looking there first and
23
+ # finding nothing is the expected result, not a failed search.
24
+ # * Arrêté Ministériel n° 78-5 du 9 janvier 1978 relatif à l'immatriculation
25
+ # des véhicules automobiles, JdM n° 6279 du 27 janvier 1978 — IS the plate
26
+ # instrument. Art. 6 is the series catalogue and is the backbone of this
27
+ # file.
28
+ # BOTH the current consolidated text and the ORIGINAL 1978 gazette printing
29
+ # were read, which is what makes the dating below possible.
30
+ #
31
+ # ---------------------------------------------------------------------------
32
+ # FIVE FINDINGS THAT CORRECT THE SECONDARY ACCOUNTS
33
+ # ---------------------------------------------------------------------------
34
+ # The English-language secondary account of Monegasque plates carries no
35
+ # citations at all, and the primary text contradicts it on four points. Each is
36
+ # recorded here because a consumer will otherwise meet the wrong version.
37
+ #
38
+ # 1. THE INSTRUMENT-DATE RULE. AM 78-5 is dated 9 January 1978 and was
39
+ # published on 27 January 1978, but its art. 11 reads: "Le présent arrêté
40
+ # entrera en vigueur le 15 mai 1978, date à laquelle les arrêtés
41
+ # ministériels n° 58-012 du 7 janvier 1958, n° 66-215 du 29 juillet 1966
42
+ # modifié par l'arrêté ministériel n° 66-287 du 25 octobre 1966 et n° 76-532
43
+ # du 3 décembre 1976 seront abrogés." THE SERIES START IS 15 MAY 1978. Three
44
+ # candidate 1978 dates, and only the instrument distinguishes them.
45
+ #
46
+ # 2. "THE SYSTEM CHANGED IN 1979" IS A MISREADING of a changeover deadline.
47
+ # Arrêté Ministériel n° 79-114 du 23 mars 1979 consists of one operative
48
+ # sentence: "L'usage de plaques minéralogiques autres que les plaques en
49
+ # tôle d'aluminium délivrées en vertu de l'arrêté ministériel n° 78-5 du
50
+ # 9 janvier 1978 susvisé est interdit à compter du 1er mai 1979." That is
51
+ # the END of the grace period for pre-1978 plates — not a new numbering
52
+ # system. Nothing about the format changed in 1979.
53
+ #
54
+ # 3. THE "000" PRINCELY PREFIX DOES NOT EXIST IN LAW, and looks like a
55
+ # corruption of something real. Art. 6's princely série spéciale is
56
+ # MC01-MC99, MP01-MP99 and PM01-PM99. The only zero-group anywhere in art. 6
57
+ # is "un groupe de quatre zéros" — 0000 — which is the COLLECTORS' plate
58
+ # series, not a princely one. Modelled as mc-collection-0000.
59
+ #
60
+ # 4. "THE PRE-1979 SERIES WAS nnnn WW MC" INVERTS THE FACTS. That grammar is
61
+ # the CURRENT provisional series under art. 6. In 1978 the WW series was the
62
+ # "Série Transfert", WW 01 to WW 99, with a maximum validity of fifteen
63
+ # days — a different thing entirely. Both are modelled below so the
64
+ # difference is visible.
65
+ #
66
+ # 5. "LIGHT BLUE" IS NOT A LEGAL TERM. Art. 6 says "couleur des caractères :
67
+ # bleue" — plain bleu, never bleu clair. The WHITE GROUND is legally
68
+ # prescribed (art. 1: "fond blanc réflectorisé, filigrané"), so Monaco's
69
+ # colours ARE law in a way Liechtenstein's were not until 2021; but the
70
+ # characteristic pale shade is practice, presumably fixed by the deposited
71
+ # models, and is recorded as observed.
72
+ #
73
+ # ---------------------------------------------------------------------------
74
+ # THE BIGGEST GAP: OVERALL PLATE DIMENSIONS ARE NOT PUBLISHED.
75
+ # ---------------------------------------------------------------------------
76
+ # AM 78-5 art. 1 requires plates to be "strictement conformes aux modèles
77
+ # déposés au Ministère d'État" — models physically DEPOSITED at the Ministry of
78
+ # State and not published. The arrêté specifies only component measurements:
79
+ # the rear relief rectangle (90 x 52 mm cars, 60 x 35 mm motorcycles), the
80
+ # front-plate MC letters (at least 16 mm), the estampille MC (20 mm cars, 13 mm
81
+ # motorcycles) and the WW adhesive bands (455 x 85 mm cars, 205 x 100 mm
82
+ # motorcycles). OVERALL WIDTH, HEIGHT AND CHARACTER HEIGHT ARE NOWHERE IN THE
83
+ # LAW. The commonly-cited 340 x 110 mm rear / 260 x 90 mm front is secondary
84
+ # and uncorroborated by any instrument, so NO `design.plate` block in this file
85
+ # asserts a car-plate size. This is the single most valuable target for a
86
+ # follow-up pass.
87
+ #
88
+ # ---------------------------------------------------------------------------
89
+ # period_evidence VOCABULARY used in this file:
90
+ # instrument-in-force the instrument's own commencement date
91
+ # instrument-in-force-upper-bound earliest instrument read carrying it
92
+ # statutory-authority-undated the statutory authority is certain but its
93
+ # date falls somewhere in an unbisected
94
+ # amendment chain; stated, not guessed
95
+ # secondary-wikipedia WIKIPEDIA-DERIVED (mandatory tag)
96
+ #
97
+ # All of these except `secondary-wikipedia` are values already in use across
98
+ # plates/*.yml; the field is open and descriptive, and nothing is coined here.
99
+ #
100
+ # format_evidence VOCABULARY: statutory | secondary-wikipedia | not-established
101
+ # ---------------------------------------------------------------------------
102
+ jurisdiction: mc
103
+ authority:
104
+ name: Service des Titres de Circulation, Principauté de Monaco — Arrêté Ministériel n° 78-5 du 9 janvier 1978
105
+ url: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/"
106
+ binding: vehicle
107
+ binding_note: >-
108
+ Code de la route art. 101: "Le certificat d'immatriculation indiquera le
109
+ numéro minéralogique assigné au véhicule" — the number is assigned to the
110
+ VEHICLE. AM 78-5 art. 10, abrogated in 2013 and RESTORED by Arrêté Ministériel
111
+ n° 2026-226 du 6 mai 2026, adds that the plates "demeurent la propriété de
112
+ l'État" and that the number "ne peuvent faire l'objet d'aucune cession", with
113
+ a six-month hold after which "le numéro redevient disponible en vue d'une
114
+ nouvelle attribution". So: state-owned, vehicle-bound, non-transferable by
115
+ private act, and REISSUED after six months.
116
+ instrument:
117
+ code_de_la_route:
118
+ citation: "Ordonnance Souveraine n° 1.691 du 17 décembre 1957 portant réglementation de la police de la circulation routière"
119
+ published: "1957-12-30"
120
+ url: "https://legimonaco.mc/tnc/ordonnance/1957/12-17-1.691/"
121
+ consolidated: "https://legimonaco.mc/code/code-route/"
122
+ role: "requires the plates and delegates their design; prescribes NO format, colour or dimension"
123
+ plate_instrument:
124
+ citation: "Arrêté Ministériel n° 78-5 du 9 janvier 1978 relatif à l'immatriculation des véhicules automobiles"
125
+ date: "1978-01-09"
126
+ published: "1978-01-27"
127
+ gazette: "Journal de Monaco n° 6279"
128
+ entry_in_force: "1978-05-15"
129
+ url: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/"
130
+ original_printing: "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # the as-published 1978 text, pp. 66-69"
131
+ repealed_predecessors: "AM 58-012 du 7 janvier 1958, AM 66-215 du 29 juillet 1966 (mod. AM 66-287 du 25 octobre 1966), AM 76-532 du 3 décembre 1976 — all abrogated on 15 May 1978 by art. 11"
132
+ amendments_material_to_plates:
133
+ - "AM 87-217 du 15 avril 1987 — recast arts. 1 and 2"
134
+ - "AM 2012-334 du 15 juin 2012 — put MC on the FRONT plate and removed the year from the estampille; art. 4: 'Les dispositions du présent arrêté entreront en vigueur le 1er janvier 2013'"
135
+ - "AM 2013-44 du 23 janvier 2013 — introduced the three-digits-then-letter car grammar, expressly 'en vue de l'augmentation du nombre de numéros d'immatriculation'"
136
+ - "AM 2025-381 du 17 juillet 2025 — replaced arts. 4 and 5 (estampille and renewal window)"
137
+ - "AM 2026-226 du 6 mai 2026 — restored art. 10 (state ownership, non-cession, six-month hold)"
138
+ amendment_chain_note: >-
139
+ Art. 6 alone carries roughly thirty amending arrêtés between 1985 and 2025.
140
+ They were NOT individually opened in this pass. The consequence is stated
141
+ honestly per series: where the 1978 original was read and matches, the start
142
+ is `instrument-in-force`; where the current text differs from 1978 and the
143
+ changing instrument was not identified, the start is `not-established`
144
+ rather than guessed at.
145
+
146
+ # ---------------------------------------------------------------------------
147
+ # Jurisdiction-wide facts.
148
+ # ---------------------------------------------------------------------------
149
+ common:
150
+ display:
151
+ rule: >-
152
+ Code de la route art. 91: "Tout véhicule automobile doit être muni de deux
153
+ plaques dites 'plaques d'immatriculation' portant le numéro
154
+ d'immatriculation assigné au véhicule en application de l'article 101 de
155
+ la présente ordonnance ; ces deux plaques doivent être fixées en évidence
156
+ d'une manière inamovibles à l'avant et à l'arrière du véhicule."
157
+ trailers: "art. 92 — trailers over 750 kg carry their own rear plate; art. 93 — a light trailer repeats the towing vehicle's plate and it may be removable"
158
+ lighting: "art. 79 — the rear plate must be lit and legible at 20 m at night"
159
+ mounting: "AM 78-5 art. 7 (vertical, perpendicular to the longitudinal axis, entirely visible) and art. 8 (loaded, the lower edge no less than 30 cm above the ground, or the wheel radius)"
160
+ source: "https://legimonaco.mc/code/code-route/ # Code de la route arts. 79, 91, 92, 93, 94, 101, 102"
161
+ material_and_ground:
162
+ rule: >-
163
+ AM 78-5 art. 1: "Le numéro d'immatriculation est reproduit d'une manière
164
+ très apparente sur des 'plaques d'immatriculation' délivrées par le
165
+ service de la circulation. Ces plaques, en tôle d'aluminium, comportent,
166
+ sur un fond blanc réflectorisé, filigrané, des inscriptions et un listel
167
+ recouverts de laque, dont la couleur varie selon les séries définies à
168
+ l'article 6. Elles doivent être maintenues strictement conformes aux
169
+ modèles déposés au Ministère d'État."
170
+ consequence: >-
171
+ THE COLOUR IS THE SERIES. Monaco's design is constant — white
172
+ retroreflective watermarked ground, aluminium, lacquered inscriptions and
173
+ listel — and what varies between series is the CHARACTER COLOUR. Only
174
+ three values appear across the whole of art. 6: bleu (almost everything),
175
+ rouge (TT and DPTC), and, in the 1978 original only, vert (diplomatic).
176
+ source: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 1"
177
+ plate_furniture:
178
+ front:
179
+ rule: >-
180
+ AM 78-5 art. 2, current text: "La plaque avant porte un écusson fuselé
181
+ rouge et blanc en moitié supérieure et comportant, en moitié inférieure,
182
+ les lettres MC en caractères bleus d'au moins 16 mm sur fond blanc
183
+ réflectorisé. L'écusson est placé à gauche du numéro d'immatriculation."
184
+ dating: >-
185
+ THE FRONT PLATE CHANGED ON 1 JANUARY 2013. In the 1978 original it read:
186
+ "La plaque avant porte la mention 'Principauté de Monaco' inscrite sur
187
+ une même horizontale au-dessous du numéro d'immatriculation et sur la
188
+ partie gauche un écusson fuselé rouge et blanc." So the front carried
189
+ the LEGEND and no MC until 2013, and carries MC and no legend after.
190
+ AM 2012-334 art. 4 fixes the date: "Les dispositions du présent arrêté
191
+ entreront en vigueur le 1er janvier 2013."
192
+ rear:
193
+ rule: >-
194
+ Art. 2: the rear plate carries "Principauté de Monaco" on one horizontal
195
+ line below the number, and on the left a raised rectangle of 90 x 52 mm
196
+ (cars, trailers, semi-trailers) or 60 x 35 mm (motorcycles, mopeds and
197
+ the like), in the same colour as the ground. The rectangle holds the
198
+ estampille.
199
+ dating: "the 1978 original gave the rectangle as 95 x 50 mm; it is 90 x 52 mm today"
200
+ source: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 2, current and 1978 texts"
201
+ estampille:
202
+ what_it_is: >-
203
+ A self-adhesive plastic stamp in the rear plate's raised rectangle,
204
+ WITHOUT WHICH THE PLATE IS NOT VALID — art. 4: "Toute plaque arrière […]
205
+ doit porter obligatoirement, pour être valable, dans le rectangle en
206
+ relief situé à sa partie gauche, une estampille en matière plastique
207
+ autocollante". It is renewed annually.
208
+ current_content: >-
209
+ Per art. 4 as replaced by AM 2025-381: a red-and-white lozenged escutcheon
210
+ in the upper part (the white lozenges retroreflective), and in the lower
211
+ part the letters MC in retroreflective white on blue — 20 mm for cars,
212
+ 13 mm for motorcycles and mopeds.
213
+ historic_content: >-
214
+ THE "ANNUM" QUESTION, ANSWERED AND DATED. In the 1978 original the
215
+ estampille carried, in its lower part, "les deux derniers chiffres du
216
+ millésime de l'année pendant laquelle la plaque d'immatriculation est
217
+ valable" — the last two digits of the validity YEAR — plus, at the right,
218
+ "un rappel perforé à l'aiguille du numéro d'immatriculation de la plaque
219
+ sur laquelle l'estampille est apposée", a needle-perforated repeat of the
220
+ registration number for authentication. So a Monegasque rear plate showed
221
+ a validity YEAR from 15 May 1978 until 31 December 2012, and shows MC from
222
+ 1 January 2013. The needle perforation is gone too.
223
+ renewal_window: >-
224
+ Art. 5, as replaced by AM 2025-381: for vehicles already in circulation,
225
+ "du 1er septembre au 31 décembre de l'année de référence". The 1978
226
+ original ran "du 1er octobre au 31 décembre".
227
+ not_part_of_the_serial: >-
228
+ The estampille is a validity device, not a registration character. It
229
+ appears in no `pattern` below.
230
+ source: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 arts. 4 and 5, current and 1978 texts"
231
+ country_sign:
232
+ letters: "MC"
233
+ rule: >-
234
+ Monaco acceded to the Convention du 8 novembre 1968 sur la circulation
235
+ routière in its own right — ratified 6 June 1978, in force for Monaco
236
+ 6 June 1979. Art. 37.1 requires a distinguishing sign on the rear; Annexe
237
+ 3.1 makes it one to three Latin capitals, black on a white ellipse; and
238
+ Annexe 3.3 is the provision PRD-PLATES §4 flags — "Le signe distinctif ne
239
+ doit pas être incorporé dans le numéro d'immatriculation, ni apposé de
240
+ façon telle qu'il puisse créer une confusion avec ce dernier ou nuire à sa
241
+ lisibilité."
242
+ honest_limit: >-
243
+ THE LETTERS "MC" AS MONACO'S NOTIFIED DISTINGUISHING SIGN ARE NOT IN ANY
244
+ MONEGASQUE INSTRUMENT READ. Under Annexe 3 the sign is notified to the UN
245
+ Secretary-General, and that notification was not reached. What IS
246
+ primary-sourced is (a) the treaty obligation to display a sign and (b) the
247
+ letters MC appearing on the plate and the estampille domestically under
248
+ AM 78-5 arts. 2 and 4. The inference that the notified sign is also MC is
249
+ not carried as a sourced claim.
250
+ sources:
251
+ - "https://legimonaco.mc/tai/convention/1968/11-08-tai1l000149/ # Vienna Convention 1968, arts. 35, 37 and Annexe 3; Monaco ratification 6 June 1978, in force 6 June 1979"
252
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 arts. 2 and 4 — MC on the front plate and the estampille"
253
+ euro_band:
254
+ present: false
255
+ evidence: >-
256
+ A SUPPORTABLE NEGATIVE, unusually. AM 78-5 art. 2 describes the front
257
+ plate exhaustively (escutcheon plus MC, to the LEFT of the number) and
258
+ art. 4 the rear estampille exhaustively; neither contemplates a blue band,
259
+ and art. 1 requires strict conformity to the deposited models. Monaco is
260
+ not an EU member, so Council Regulation (EC) 2411/98 does not reach it.
261
+ customs_union:
262
+ rule: >-
263
+ Primary-sourced from the plate instrument itself: AM 78-5 art. 6 conditions
264
+ the TT series on "la convention douanière franco-monégasque du 13 mai
265
+ 1963" and refers to "un pays ne relevant pas du régime d'union douanière
266
+ franco-monégasque". Monaco is in customs union with France while remaining
267
+ a separate registering state — the two facts a consumer most often
268
+ conflates.
269
+ source: "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série TT"
270
+ serial_shape:
271
+ rule: >-
272
+ AM 78-5 art. 6 opens: "Le numéro d'immatriculation est constitué par un
273
+ groupe de chiffres ou de lettres et de chiffres." Monegasque serials are
274
+ SHORT — four characters is typical and five is the maximum in the ordinary
275
+ series — which is why Monaco's plates are physically smaller than most
276
+ European ones.
277
+ separator: none
278
+ separator_note: >-
279
+ No separator glyph is prescribed anywhere in art. 6; the components are
280
+ described as adjacent groups. Patterns below spell the serial unbroken
281
+ except where a legend intervenes (the WW provisional series). Regexes
282
+ accept `[- ]?` at group boundaries so a consumer forgiving punctuation
283
+ still matches.
284
+ progression:
285
+ sequential: not-established
286
+ rule: >-
287
+ NO INSTRUMENT STATES that numbers are issued sequentially. Art. 6 gives
288
+ RANGES, not an allocation order.
289
+ reissue: >-
290
+ NON-REISSUE IS AFFIRMATIVELY CONTRADICTED, which matters for any consumer
291
+ treating a plate as a unique historical key. AM 78-5 art. 10, restored by
292
+ AM 2026-226, provides that after a maximum six-month hold "le numéro
293
+ redevient disponible en vue d'une nouvelle attribution". Monegasque
294
+ numbers are RECYCLED.
295
+ source: "https://legimonaco.mc/tnc/arrete-ministeriel/2026/05-06-2026-226/ # AM 2026-226 du 6 mai 2026, restoring AM 78-5 art. 10"
296
+ emblem:
297
+ present: true
298
+ rendered: placeholder
299
+ rule: >-
300
+ The "écusson fuselé rouge et blanc" — the lozengy red-and-white shield of
301
+ the Grimaldi arms — is on the front plate and on the estampille. On the
302
+ princely série spéciale, "les armoiries princières remplacent l'écusson
303
+ rouge et blanc et l'estampille". PRD-PLATES §3's placeholder rule applies;
304
+ no clean licence route to the Grimaldi arms was located.
305
+ not_modelled:
306
+ - "NO POLICE SERIES EXISTS IN THE LAW. Art. 6 lists ME (Ministère d'État) and CN (Conseil National) and no Sûreté Publique series at all. The commonly-repeated 'SP + two digits' for police motorcycles has no primary basis located and is NOT modelled — a searched-for negative, not an oversight."
307
+ - "SÉRIE VÉHICULES DE LOCATION exists in art. 6 (rental vehicles, blue characters, with 'location longue durée' or 'location courte durée' noted on the certificate) but the article prescribes NO distinguishing letter or grammar. Without a grammar there is nothing to model, so it is recorded and omitted."
308
+ - "SÉRIE VÉHICULES DE COMPÉTITION appears in art. 6 with no grammar stated. Same treatment."
309
+ - "SÉRIE VÉHICULES DE COLLECTION (vehicles over 30 years old, unmodified) uses the SAME characters as the série normale, with the status noted on the certificate rather than on the plate. It is therefore not a plate series at all and is not modelled. Distinguish it from the 'Plaques de collection' 0000 series, which IS modelled."
310
+ - "SÉRIE DPTC (delegated/autonomous driving, Titre VII bis) is in art. 6 with red characters and a validity of one year renewable once, but no serial grammar is stated. Recorded and omitted."
311
+ - "PRE-1978 PLATES ARE NOT MODELLED. AM 78-5 art. 11 names its four repealed predecessors — AM 58-012 du 7 janvier 1958, AM 66-215 du 29 juillet 1966, AM 66-287 du 25 octobre 1966 and AM 76-532 du 3 décembre 1976 — so their numbers and dates are reliable, but none of their TEXTS was read. The Journal de Monaco archive runs back to 1858 and is browsable by year, so all four are recoverable; this is the second-best target for a follow-up pass after the deposited models."
312
+
313
+ region_encoding: none
314
+ region_encoding_note: >-
315
+ Monaco encodes no geography. The state is 2 km2 with no subdivisions that
316
+ appear in a registration; its wards are administrative only.
317
+
318
+ series:
319
+
320
+ # =========================================================================
321
+ # THE SÉRIE NORMALE FOR CARS — THREE grammars, and they are modelled as
322
+ # three series because their formats differ and one of them has its own,
323
+ # instrument-dated start.
324
+ # =========================================================================
325
+ - id: mc-standard-numeric
326
+ class: standard
327
+ categories: [car, van, truck, bus]
328
+ period: { start: 1978 }
329
+ period_evidence: instrument-in-force
330
+ period_note: >-
331
+ 15 May 1978 — AM 78-5 art. 11. Verified against the ORIGINAL 1978 gazette
332
+ printing, which already contains "un groupe de quatre chiffres au plus,
333
+ soit n° 0001 à 9999", so this grammar is original to the instrument and
334
+ not a later amendment.
335
+ matching: strict
336
+ format:
337
+ pattern: "9999"
338
+ regex: '\A\d{1,4}\z'
339
+ format_evidence: statutory
340
+ format_note: >-
341
+ Art. 6, série normale, automobiles: "un groupe de quatre chiffres au
342
+ plus soit du n° 0001 au n° 9999". "Au plus" is doing real work — the
343
+ number may be shorter than four digits, so `\d{1,4}` rather than
344
+ `\d{4}`. The value 0000 is NOT in this series; it belongs to
345
+ mc-collection-0000.
346
+ design:
347
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "'fond blanc réflectorisé, filigrané' (art. 1) — the ground IS prescribed, in words; no CIE or RAL value exists" }
348
+ foreground: "#5B9BD5"
349
+ foreground_note: >-
350
+ Art. 6 says "couleur des caractères : bleue" — plain BLEU. The
351
+ characteristic pale shade is NOT a legal term; see header finding 5.
352
+ `hex_basis: observed`, and a verifier should not upgrade it without the
353
+ deposited models.
354
+ hex_basis: observed
355
+ band: { side: none }
356
+ emblem: { present: true, rendered: placeholder, position: "left of the number on the front plate (art. 2)" }
357
+ legend_front: { text: "MC", from: 2013, note: "before 1 January 2013 the front carried 'Principauté de Monaco' instead — see common.plate_furniture.front.dating" }
358
+ legend_rear: { text: "Principauté de Monaco", position: "below the number" }
359
+ rear_differs: true
360
+ rear_differs_note: >-
361
+ TRUE. The rear plate carries the legend, the raised 90 x 52 mm rectangle
362
+ and the estampille; the front carries the escutcheon with MC and none of
363
+ those. Since 2013 the two plates do not even bear the same text.
364
+ plate: null
365
+ plate_note: >-
366
+ NO OVERALL DIMENSIONS ARE ASSERTED. AM 78-5 art. 1 defers to "modèles
367
+ déposés au Ministère d'État", which are unpublished; the commonly-cited
368
+ 340 x 110 / 260 x 90 mm is secondary and uncorroborated. See the header.
369
+ region_encoding: none
370
+ notes: >-
371
+ THE PLAIN NUMERIC CAR SERIES — up to four digits and nothing else. The
372
+ original and still the most common Monegasque plate. Its exhaustion is
373
+ what drove the two lettered grammars below, and AM 2013-44's own title
374
+ says so: "en vue de l'augmentation du nombre de numéros
375
+ d'immatriculation".
376
+ sources:
377
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6 (série normale, automobiles), art. 1 (material and ground), art. 2 (plate furniture), art. 11 (in force 15 May 1978)"
378
+ - "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # the as-published 1978 text confirming this grammar is original"
379
+
380
+ - id: mc-standard-letter-prefix
381
+ class: standard
382
+ categories: [car, van, truck, bus]
383
+ period: { start: 1978 }
384
+ period_evidence: instrument-in-force
385
+ period_note: >-
386
+ Also original to AM 78-5 and confirmed in the 1978 gazette printing: "ou
387
+ une lettre et un groupe de trois chiffres au plus". So Monaco had a
388
+ lettered car grammar from the start — the 2013 amendment added a THIRD
389
+ grammar, it did not introduce letters.
390
+ matching: strict
391
+ format:
392
+ pattern: "L999"
393
+ regex: '\A[A-Z]\d{3}\z'
394
+ regex_strict: '\A[BCDEFGHJKLMNPQRSTUVXY]\d{3}\z'
395
+ format_evidence: statutory
396
+ charset:
397
+ letters: [B, C, D, E, F, G, H, J, K, L, M, N, P, Q, R, S, T, U, V, X, Y]
398
+ notes: >-
399
+ Twenty-one letters, enumerated in art. 6. A, I, O, W and Z are absent:
400
+ Z is expressly RESERVED to the art. 102 residency series (see
401
+ mc-resident-z), A is the trailer letter (mc-trailer), and I, O and W
402
+ are excluded — I and O presumably for legibility and W because it is
403
+ the trade-plate letter. The instrument enumerates without giving
404
+ reasons; the reservations are visible from the other series.
405
+ design:
406
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
407
+ foreground: "#5B9BD5"
408
+ hex_basis: observed
409
+ band: { side: none }
410
+ emblem: { present: true, rendered: placeholder }
411
+ rear_differs: true
412
+ plate: null
413
+ region_encoding: none
414
+ notes: >-
415
+ LETTER THEN THREE DIGITS — the second car grammar, running B001 to Y999
416
+ through the enumerated alphabet. Distinguished from mc-standard-numeric by
417
+ shape alone; both are "série normale" and share every design attribute.
418
+ sources:
419
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série normale: 'une lettre et un groupe de trois chiffres au plus, soit n° B001 à n° B999 ; n° C001 à n° C999' and the letter list"
420
+
421
+ - id: mc-standard-letter-suffix
422
+ class: standard
423
+ categories: [car, van, truck, bus]
424
+ period: { start: 2013 }
425
+ period_evidence: instrument-in-force
426
+ period_note: >-
427
+ 2013, AND THE INSTRUMENT SAYS WHY. This grammar is NOT in the 1978 text —
428
+ that was checked against the original gazette printing. It was introduced
429
+ by Arrêté Ministériel n° 2013-44 du 23 janvier 2013, JdM du 1er février
430
+ 2013, whose title is itself dispositive on motive: "modifiant l'arrêté
431
+ ministériel n° 78-5 […] en vue de l'augmentation du nombre de numéros
432
+ d'immatriculation". A capacity expansion, dated by its own instrument.
433
+ matching: strict
434
+ format:
435
+ pattern: "999L"
436
+ regex: '\A\d{3}[A-Z]\z'
437
+ regex_strict: '\A\d{3}[BCDEFGHJKLNPQRSTUVXY]\z'
438
+ format_evidence: statutory
439
+ charset:
440
+ letters: [B, C, D, E, F, G, H, J, K, L, N, P, Q, R, S, T, U, V, X, Y]
441
+ notes: >-
442
+ TWENTY letters, one fewer than the prefix series — M IS ABSENT HERE
443
+ and present there. That asymmetry is in the instrument's two separate
444
+ enumerations and is not a transcription slip; it is preserved because
445
+ a suffix M would be the one string that distinguishes a
446
+ transcription error from a real plate.
447
+ progression: "art. 6: the letter is taken 'par ordre alphabétique' from the enumerated list"
448
+ design:
449
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
450
+ foreground: "#5B9BD5"
451
+ hex_basis: observed
452
+ band: { side: none }
453
+ emblem: { present: true, rendered: placeholder }
454
+ legend_front: { text: "MC" }
455
+ rear_differs: true
456
+ plate: null
457
+ region_encoding: none
458
+ notes: >-
459
+ THREE DIGITS THEN A LETTER — the newest car grammar, from 2013, created to
460
+ expand capacity. A plate of this shape cannot predate 2013, which makes it
461
+ the only Monegasque serial shape that carries era information. That is a
462
+ genuinely useful parse-API signal and it rests on a dated instrument.
463
+ sources:
464
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/2013/01-23-2013-44/ # AM 2013-44 du 23 janvier 2013, amending AM 78-5 art. 6"
465
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, current consolidated text: 'un groupe de trois chiffres au plus suivi d'une lettre prise, par ordre alphabétique, dans la liste ci-après'"
466
+
467
+ - id: mc-resident-z
468
+ class: standard
469
+ categories: [car, van]
470
+ period: { start: 1978 }
471
+ period_evidence: instrument-in-force-upper-bound
472
+ period_note: >-
473
+ The Z reservation appears in the current art. 6. Whether it is original to
474
+ 1978 was not confirmed against the original printing, so 1978 is an UPPER
475
+ bound rather than a verified start.
476
+ matching: strict
477
+ format:
478
+ pattern: "Z999"
479
+ regex: '\AZ\d{3}\z'
480
+ format_evidence: statutory
481
+ format_note: >-
482
+ Art. 6: "la lettre Z étant réservée aux personnes physiques visées par
483
+ l'article 102 […] justifiant en nom personnel d'un titre de propriété ou
484
+ d'un bail à loyer concernant un logement en Principauté." Z is carved
485
+ OUT of the letter-prefix alphabet for this purpose, which is why
486
+ mc-standard-letter-prefix's enumeration stops at Y.
487
+ design:
488
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
489
+ foreground: "#5B9BD5"
490
+ hex_basis: observed
491
+ band: { side: none }
492
+ emblem: { present: true, rendered: placeholder }
493
+ rear_differs: true
494
+ plate: null
495
+ region_encoding: none
496
+ notes: >-
497
+ THE Z SERIES — a residency-qualified block, not a vehicle-type one. It is
498
+ issued to natural persons who qualify under Code de la route art. 102 by
499
+ showing title to or a lease of a dwelling in the Principality. Modelled
500
+ separately from mc-standard-letter-prefix because the ELIGIBILITY differs
501
+ and the letter is expressly reserved, even though the shape is identical.
502
+ This is the closest thing Monaco has to an encoded fact about the keeper.
503
+ sources:
504
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, the Z reservation"
505
+ - "https://legimonaco.mc/code/code-route/ # Code de la route art. 102, the registration eligibility conditions"
506
+
507
+ # =========================================================================
508
+ # OTHER ORDINARY-SERIES SHAPES.
509
+ # =========================================================================
510
+ - id: mc-motorcycle
511
+ class: motorcycle
512
+ categories: [motorcycle, moped]
513
+ period: { start: 1978 }
514
+ period_evidence: instrument-in-force-upper-bound
515
+ matching: strict
516
+ format:
517
+ pattern: "LL99"
518
+ regex: '\A[A-Z]{2}\d{2}\z'
519
+ regex_strict: '\A(?!MC|MP|PM)[ABCDEFGHJKLMNPQRSTUVXYZ]{2}\d{2}\z'
520
+ format_evidence: statutory
521
+ charset:
522
+ letters: [A, B, C, D, E, F, G, H, J, K, L, M, N, P, Q, R, S, T, U, V, X, Y, Z]
523
+ notes: >-
524
+ Art. 6: "deux lettres et un groupe de deux chiffres, soit du n° AA01 au
525
+ n° ZZ99 (sauf MC01 à MC99, MP01 à MP99, PM01 à PM99)". The three
526
+ excluded pairs are the PRINCELY blocks — so the motorcycle series and
527
+ the Sovereign Prince's series share one number space, and the
528
+ exclusion is what keeps them apart. `regex_strict` encodes that with a
529
+ negative lookahead. I, O and W are absent from the letter list.
530
+ design:
531
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
532
+ foreground: "#5B9BD5"
533
+ hex_basis: observed
534
+ band: { side: none }
535
+ emblem: { present: true, rendered: placeholder }
536
+ rear_rectangle: { w: 60, h: 35, unit: mm, note: "the motorcycle estampille rectangle, against 90 x 52 mm on cars (art. 2)" }
537
+ estampille_letters: { h: 13, unit: mm, note: "13 mm for motorcycles and mopeds; 20 mm for cars (art. 4)" }
538
+ rear_differs: false
539
+ plate: null
540
+ region_encoding: none
541
+ notes: >-
542
+ MOTORCYCLES AND MOPEDS — two letters and two digits, the only ordinary
543
+ Monegasque shape that leads with two letters. The princely exclusions make
544
+ this the one series in the file whose grammar is defined partly by
545
+ subtraction.
546
+ sources:
547
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6 (motorcycle grammar and letter list), art. 2 (60 x 35 mm rectangle), art. 4 (13 mm estampille)"
548
+
549
+ - id: mc-trailer
550
+ class: trailer
551
+ categories: [trailer, semitrailer]
552
+ period: { start: 1978 }
553
+ period_evidence: instrument-in-force-upper-bound
554
+ matching: strict
555
+ format:
556
+ pattern: "A999"
557
+ regex: '\AA\d{3}\z'
558
+ format_evidence: statutory
559
+ format_note: >-
560
+ Art. 6: "une lettre et un groupe de trois chiffres au plus, soit du n°
561
+ A001 au n° A999." The letter is fixed at A, which is why A is absent
562
+ from the car letter-prefix alphabet. Only trailers over 750 kg carry
563
+ their own plate; lighter ones repeat the towing vehicle's (Code de la
564
+ route arts. 92-93).
565
+ design:
566
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
567
+ foreground: "#5B9BD5"
568
+ hex_basis: observed
569
+ band: { side: none }
570
+ emblem: { present: true, rendered: placeholder }
571
+ rear_rectangle: { w: 90, h: 52, unit: mm, note: "trailers take the car-sized rectangle (art. 2)" }
572
+ rear_differs: false
573
+ plate: null
574
+ region_encoding: none
575
+ notes: >-
576
+ TRAILERS over 750 kg. The A block is exactly 999 registrations wide, which
577
+ is the smallest closed number space in the ordinary Monegasque system.
578
+ sources:
579
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, remorques"
580
+ - "https://legimonaco.mc/code/code-route/ # Code de la route arts. 92-93"
581
+
582
+ - id: mc-collection-0000
583
+ class: historic
584
+ categories: [car]
585
+ period: { start: 1978 }
586
+ period_evidence: instrument-in-force-upper-bound
587
+ matching: strict
588
+ format:
589
+ pattern: "0000"
590
+ regex: '\A0000\z'
591
+ format_evidence: statutory
592
+ format_note: >-
593
+ A SINGLE-VALUE SERIES. Art. 6, "Plaques de collection": "un groupe de
594
+ quatre zéros ; couleur des caractères : bleu." The pattern spells the
595
+ zeros as literals rather than as 9 tokens, because a 9 token would
596
+ generate serials this series does not contain.
597
+ design:
598
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
599
+ foreground: "#5B9BD5"
600
+ hex_basis: observed
601
+ band: { side: none }
602
+ emblem: { present: true, rendered: placeholder }
603
+ rear_differs: true
604
+ plate: null
605
+ region_encoding: none
606
+ notes: >-
607
+ THE 0000 PLATE. This is the only four-zero group in Monegasque law, and it
608
+ is a COLLECTORS' plate — not a princely one. It is modelled precisely
609
+ because the "000 belongs to the Princely family" claim is so widely
610
+ repeated: the string that claim half-remembers exists, and it means
611
+ something else. Distinguish it from the "Série Véhicules de collection"
612
+ for vehicles over thirty years old, which uses ordinary characters and is
613
+ not a plate series at all.
614
+ sources:
615
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, Plaques de collection"
616
+
617
+ # =========================================================================
618
+ # STATE AND PRINCELY SERIES.
619
+ # =========================================================================
620
+ - id: mc-princely
621
+ class: government
622
+ categories: [car, van]
623
+ period: { start: 1978 }
624
+ period_evidence: instrument-in-force
625
+ period_note: >-
626
+ Original to AM 78-5, but ONLY IN PART. The 1978 printing gives the
627
+ princely série spéciale as MC01-MC99 alone; MP and PM were added by a
628
+ later amendment that was NOT identified among art. 6's roughly thirty
629
+ amending arrêtés. So the SERIES starts in 1978 and two of its three blocks
630
+ start at an unpinned later date — recorded rather than smoothed over.
631
+ matching: strict
632
+ format:
633
+ pattern: "LL99"
634
+ regex: '\A[A-Z]{2}\d{2}\z'
635
+ regex_strict: '\A(?:MC|MP|PM)\d{2}\z'
636
+ format_evidence: statutory
637
+ format_note: >-
638
+ Art. 6, série spéciale: "un groupe de deux lettres, suivi d'un groupe de
639
+ deux chiffres soit MC01 à MC99, MP01 à MP99 et PM01 à PM99". Shape-
640
+ identical to the motorcycle series, which is why that series excludes
641
+ these three pairs by name.
642
+ design:
643
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
644
+ foreground: "#5B9BD5"
645
+ hex_basis: observed
646
+ band: { side: none }
647
+ emblem:
648
+ present: true
649
+ rendered: placeholder
650
+ note: >-
651
+ THE PRINCELY ARMS REPLACE BOTH the red-and-white escutcheon AND the
652
+ estampille, front and rear — art. 6: "à l'avant et à l'arrière, les
653
+ armoiries princières remplacent l'écusson rouge et blanc et
654
+ l'estampille." So a princely plate needs no annual validity stamp,
655
+ which is the only exemption of its kind in the system.
656
+ rear_differs: true
657
+ plate: null
658
+ region_encoding: none
659
+ notes: >-
660
+ THE SOVEREIGN PRINCE'S SERIES. Class `government` — these are state
661
+ vehicles of the head of state, not a personalized or vanity series. Note
662
+ what the instrument does NOT say: it does not mention "000", and it does
663
+ not reserve any block to family members by name. See header finding 3.
664
+ sources:
665
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série spéciale"
666
+ - "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # the 1978 printing, showing MC01-MC99 only"
667
+
668
+ - id: mc-government-me
669
+ class: government
670
+ categories: [car, van]
671
+ period: { start: 1978 }
672
+ period_evidence: instrument-in-force-upper-bound
673
+ matching: strict
674
+ format:
675
+ pattern: "9ME9"
676
+ regex: '\A\d[- ]?ME[- ]?\d\z'
677
+ format_evidence: statutory
678
+ format_note: >-
679
+ Art. 6: "un chiffre suivi des lettres 'ME' et d'un chiffre" — the letters
680
+ sit INSIDE the number, which is unusual and is the only infix grammar in
681
+ this file. Vehicles in this series are exempt from the Code de la
682
+ route's registration fees.
683
+ design:
684
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
685
+ foreground: "#5B9BD5"
686
+ hex_basis: observed
687
+ band: { side: none }
688
+ emblem: { present: true, rendered: placeholder }
689
+ rear_differs: true
690
+ plate: null
691
+ region_encoding: none
692
+ notes: >-
693
+ MINISTÈRE D'ÉTAT — the government's own fleet. Distinct from mc-princely
694
+ (the head of state) and from mc-conseil-national (the legislature), each
695
+ of which has its own two-letter infix. Monaco is unusual in giving all
696
+ three branches separately-marked plates.
697
+ sources:
698
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, Ministère d'État"
699
+
700
+ - id: mc-conseil-national
701
+ class: government
702
+ categories: [car]
703
+ period: { start: 1978 }
704
+ period_evidence: instrument-in-force-upper-bound
705
+ matching: strict
706
+ format:
707
+ pattern: "9CN9"
708
+ regex: '\A\d[- ]?CN[- ]?\d\z'
709
+ format_evidence: statutory
710
+ format_note: >-
711
+ Art. 6: "un chiffre, suivi des lettres 'CN' et d'un chiffre", followed by
712
+ an unusually specific cap: "Il ne peut être attribué que deux numéros
713
+ d'immatriculation au Conseil National." TWO PLATES, IN THE INSTRUMENT.
714
+ That is the smallest series in this dataset with an explicit statutory
715
+ ceiling.
716
+ design:
717
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
718
+ foreground: "#5B9BD5"
719
+ hex_basis: observed
720
+ band: { side: none }
721
+ emblem: { present: true, rendered: placeholder }
722
+ rear_differs: true
723
+ plate: null
724
+ region_encoding: none
725
+ notes: >-
726
+ CONSEIL NATIONAL — Monaco's legislature, capped at two registrations by
727
+ art. 6 itself. Included because a statutory two-vehicle ceiling is a real,
728
+ citable fact of the kind this dataset exists to hold, and because a parse
729
+ API meeting a CN plate should know the series is essentially closed.
730
+ sources:
731
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, Conseil National"
732
+
733
+ # =========================================================================
734
+ # DIPLOMATIC AND CONSULAR — where the 1978 text and the current text differ
735
+ # in COLOUR, and the change is undated.
736
+ # =========================================================================
737
+ - id: mc-diplomatic-cd
738
+ class: diplomatic
739
+ categories: [car, van]
740
+ period: { start: 1978 }
741
+ period_evidence: instrument-in-force
742
+ matching: strict
743
+ format:
744
+ pattern: "CD99L"
745
+ regex: '\ACD[- ]?\d{1,3}[- ]?[A-Z]\z'
746
+ format_evidence: statutory
747
+ format_note: >-
748
+ Art. 6, current: "les lettres 'CD' suivies d'un numéro d'identification
749
+ et d'une lettre classant les véhicules." The trailing letter CLASSIFIES
750
+ the vehicle; the middle group identifies the mission. Neither the digit
751
+ count nor the classifying alphabet is enumerated, so `\d{1,3}` and
752
+ `[A-Z]` are practical bounds and not sourced widths.
753
+ design:
754
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
755
+ foreground: "#5B9BD5"
756
+ hex_basis: observed
757
+ foreground_note: >-
758
+ BLUE TODAY, GREEN IN 1978, AND THE CHANGE IS UNDATED — a recorded
759
+ disagreement between two readings of the SAME instrument at different
760
+ times, which is a cleaner kind of evidence than a disagreement between
761
+ sources. The 1978 printing says "Couleur des caractères : vert" for
762
+ ministres plénipotentiaires, members of the diplomatic corps, career
763
+ consular officers and assimilated bodies alike. The current consolidated
764
+ text says "bleu" for every one of them. Which of art. 6's ~30 amending
765
+ arrêtés made the change was not bisected in this pass. Anyone repeating
766
+ "green CD plates in Monaco" is describing the 1978 law correctly and the
767
+ present law incorrectly.
768
+ colour_history:
769
+ - { value: green, period: "1978-05-15 to an unpinned date", source_note: "the as-published 1978 gazette text" }
770
+ - { value: blue, period: "unpinned date to present", source_note: "the current consolidated text" }
771
+ band: { side: none }
772
+ emblem: { present: true, rendered: placeholder }
773
+ rear_differs: true
774
+ plate: null
775
+ region_encoding: none
776
+ notes: >-
777
+ DIPLOMATIC CORPS. The 1978 text subdivided the green series finely —
778
+ ministres plénipotentiaires of the Sovereign Prince at CD 1Z to CD 9Z,
779
+ members of the diplomatic corps from CD 10 to CD 20, career consular
780
+ officers and assimilated international bodies each with their own
781
+ paragraph. The current text collapses these into one CD grammar plus the
782
+ separate K series below.
783
+ sources:
784
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série diplomatique, current consolidated text"
785
+ - "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # the 1978 printing: 'Couleur des caractères : vert' and the CD 1Z / CD 10-CD 20 subdivisions"
786
+
787
+ - id: mc-diplomatic-k
788
+ class: diplomatic
789
+ categories: [car, van]
790
+ period: { start: 1978 }
791
+ period_evidence: instrument-in-force-upper-bound
792
+ matching: strict
793
+ format:
794
+ pattern: "99K99"
795
+ regex: '\A\d{1,3}[- ]?K[- ]?\d{2}\z'
796
+ format_evidence: statutory
797
+ format_note: >-
798
+ Art. 6: "un numéro d'identification identique à celui attribué aux
799
+ membres du corps diplomatique suivi de la lettre 'K' et de deux
800
+ chiffres." THE LEADING NUMBER IS SHARED WITH THE MISSION'S CD PLATE —
801
+ so a K plate and a CD plate with the same leading identifier belong to
802
+ the same mission. That is a genuine decode relationship, and it is the
803
+ only one in the Monegasque system.
804
+ design:
805
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
806
+ foreground: "#5B9BD5"
807
+ hex_basis: observed
808
+ band: { side: none }
809
+ emblem: { present: true, rendered: placeholder }
810
+ rear_differs: true
811
+ plate: null
812
+ region_encoding: none
813
+ notes: >-
814
+ ADMINISTRATIVE AND TECHNICAL STAFF of missions, and staff of international
815
+ organisations. Class `diplomatic` rather than `consular`: the instrument
816
+ ties the identifier to the diplomatic corps' own numbering. Separated from
817
+ mc-diplomatic-cd because the grammar differs and the entitlement is
818
+ different in kind.
819
+ sources:
820
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, personnel administratif et technique"
821
+
822
+ - id: mc-consular-cc
823
+ class: consular
824
+ categories: [car, van]
825
+ period: { start: 1978 }
826
+ period_evidence: instrument-in-force
827
+ period_note: >-
828
+ Original to AM 78-5 and confirmed against the 1978 printing, which gives
829
+ "CC suivi d'un numéro allant de 01 à 99" — and, notably, gives the colour
830
+ as BLEU even in 1978, when every diplomatic sub-series was green. So the
831
+ honorary consular series has been blue throughout, and it was the only
832
+ blue series in the diplomatic family in 1978.
833
+ matching: strict
834
+ format:
835
+ pattern: "CC99"
836
+ regex: '\ACC[- ]?\d{1,2}\z'
837
+ format_evidence: statutory
838
+ format_note: "art. 6: 'les lettres CC suivies d'un numéro allant de 1 à 99' — a 99-registration closed block"
839
+ design:
840
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
841
+ foreground: "#5B9BD5"
842
+ hex_basis: observed
843
+ band: { side: none }
844
+ emblem: { present: true, rendered: placeholder }
845
+ rear_differs: true
846
+ plate: null
847
+ region_encoding: none
848
+ notes: >-
849
+ HONORARY CONSULAR AGENTS — "Agents consulaires honoraires" in the
850
+ instrument's own heading, which is narrower than "consular corps": career
851
+ consular officers were in the GREEN diplomatic family in 1978. The
852
+ distinction between honorary and career consular status is carried in the
853
+ law and is preserved here.
854
+ sources:
855
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, Agents consulaires honoraires"
856
+ - "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # the 1978 printing, confirming CC was blue from the start"
857
+
858
+ # =========================================================================
859
+ # TRADE, TRANSIT AND PROVISIONAL.
860
+ # =========================================================================
861
+ - id: mc-dealer-w
862
+ class: dealer
863
+ categories: [car, van, truck, motorcycle]
864
+ period: { start: 1978 }
865
+ period_evidence: instrument-in-force-upper-bound
866
+ matching: strict
867
+ format:
868
+ pattern: "W999"
869
+ regex: '\AW\d{1,3}\z'
870
+ regex_statutory: '\A(?:W\d{1,3}|W\d[A-Z]\d|\d{3}W|W[A-Z]\d{2})\z'
871
+ format_evidence: statutory
872
+ format_note: >-
873
+ Art. 6, "Professionnels de l'automobile": "la lettre W suivie d'un groupe
874
+ de trois chiffres au plus ou d'une lettre et deux chiffres au plus." The
875
+ article then splits the space by document type — W 001 to W 099 and
876
+ W 0 A1 to W 0 Z9 against a card, and W100 to W999, 100W to 999W and
877
+ WA01 to WZ99 against a provisional certificate. `regex` carries the
878
+ common W-then-digits form; `regex_statutory` carries all four shapes,
879
+ which is exactly the tier's purpose.
880
+ design:
881
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
882
+ foreground: "#5B9BD5"
883
+ hex_basis: observed
884
+ band: { side: none }
885
+ emblem: { present: true, rendered: placeholder }
886
+ rear_differs: true
887
+ plate: null
888
+ region_encoding: none
889
+ notes: >-
890
+ MOTOR TRADE PLATES, bound to a business rather than a vehicle — the reason
891
+ W is excluded from every ordinary-series alphabet. The W regime is older
892
+ than AM 78-5: art. 11 abrogates AM 58-012 du 7 janvier 1958, which is
893
+ named as a predecessor and was not read.
894
+ sources:
895
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, Professionnels de l'automobile"
896
+
897
+ - id: mc-tt
898
+ class: temporary
899
+ categories: [car, van, motorcycle]
900
+ period: { start: 1978 }
901
+ period_evidence: instrument-in-force-upper-bound
902
+ matching: strict
903
+ format:
904
+ pattern: "TT99"
905
+ regex: '\ATT[- ]?\d{1,2}\z'
906
+ format_evidence: statutory
907
+ format_note: >-
908
+ Art. 6: "Le numéro d'immatriculation est composé d'un symbole TT suivi
909
+ d'un groupe de deux chiffres au plus, allant du n° TT01 à TT99." Maximum
910
+ validity one year.
911
+ design:
912
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
913
+ foreground: "#CC0000"
914
+ foreground_note: >-
915
+ RED characters — "couleur des caractères : rouge", one of only two red
916
+ series in Monegasque law (the other is DPTC). Since the ground and
917
+ furniture are constant, the red IS the series marker, and it is
918
+ statutory rather than observed. hex_basis observed for the shade only.
919
+ hex_basis: observed
920
+ band: { side: none }
921
+ emblem: { present: true, rendered: placeholder }
922
+ rear_differs: true
923
+ plate: null
924
+ region_encoding: none
925
+ notes: >-
926
+ TRANSIT TEMPORAIRE — temporary importation, conditioned by art. 6 on the
927
+ "convention douanière franco-monégasque du 13 mai 1963" and available for
928
+ vehicles from outside the Franco-Monegasque customs union. A 99-plate
929
+ block with a one-year ceiling.
930
+ sources:
931
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série TT"
932
+
933
+ - id: mc-provisional-ww
934
+ class: temporary
935
+ categories: [car, van, motorcycle]
936
+ period: { start: 1978 }
937
+ period_evidence: statutory-authority-undated
938
+ period_caveat: >-
939
+ READ THIS BEFORE TRUSTING THE START YEAR. The CURRENT WW grammar is NOT in
940
+ the 1978 text — the 1978 WW series was something else entirely (see
941
+ mc-transfert-ww-1978). This series' true start lies somewhere in art. 6's
942
+ roughly thirty amendments between 1985 and 2025, and it was NOT bisected
943
+ in this pass. `period.start` carries 1978 only because the schema requires
944
+ a start and 1978 is the floor for any WW series at all; it is NOT a claim
945
+ that this grammar existed in 1978, and `period_evidence: not-established`
946
+ says so. A verifier should replace this start, not confirm it.
947
+ matching: strict
948
+ format:
949
+ pattern: "9999 WW MC"
950
+ regex: '\A\d{4}[- ]?WW2?[- ]?[A-Z]?[- ]?MC\z'
951
+ format_evidence: statutory
952
+ format_note: >-
953
+ Art. 6, série provisoire: the number is composed of "a) un groupe de 4
954
+ chiffres pour les véhicules automobiles […] ou de 2 lettres et 2
955
+ chiffres pour les motocycles et assimilés ; b) suivi du symbole WW ou
956
+ WW2, suivi, le cas échéant, d'une lettre de série (A, B, C, etc.) ; c)
957
+ suivi des lettres MC." The trailing MC is part of THIS serial — the only
958
+ series in the file where MC is in the string rather than on the plate
959
+ furniture. Validity four months.
960
+ design:
961
+ background: { color: "#003399", finish: non-reflective, hex_basis: observed }
962
+ foreground: "#FFFFFF"
963
+ design_note: >-
964
+ THE ONE SERIES THAT INVERTS MONACO'S WHOLE COLOUR SCHEME, and it is not
965
+ a plate at all but an adhesive band: "Ces bandes autocollantes doivent
966
+ être de couleur bleue avec des caractères blancs, encadrés d'un trait
967
+ blanc sur lequel est insérée, sur la partie du bas à l'horizontale, la
968
+ mention 'PRINCIPAUTÉ DE MONACO'." White on blue, against blue on white
969
+ everywhere else.
970
+ plate: { w: 455, h: 85, unit: mm, note: "the adhesive band for cars — 'longueur : 45,5 cm ; largeur : 8,5 cm'. THE ONLY OVERALL DIMENSION IN THE WHOLE INSTRUMENT, because a band is not a deposited model." }
971
+ plate_variants:
972
+ - { w: 205, h: 100, unit: mm, note: "motorcycles — 'longueur : 20,5 cm ; largeur : 10 cm'" }
973
+ font: { name: "Swiss721 BT", note: "NAMED IN THE INSTRUMENT — the only typeface named anywhere in the microstates group, and a licensing question PRD-PLATES §6 must answer before any render uses it. Swiss721 is a Bitstream commercial font; the render layer uses the schematic fallback." }
974
+ band: { side: none }
975
+ emblem: { present: false }
976
+ rear_differs: false
977
+ region_encoding: none
978
+ notes: >-
979
+ PROVISIONAL REGISTRATION, four months, on adhesive bands rather than
980
+ aluminium plates. This is the grammar the secondary accounts mistake for a
981
+ pre-1979 general series — see header finding 4. Two facts make it the most
982
+ unusual entry in this file: it is the only Monegasque series with white
983
+ characters on blue, and it is the only one whose typeface is named in law.
984
+ sources:
985
+ - "https://legimonaco.mc/tnc/arrete-ministeriel/1978/01-09-78-5/ # AM 78-5 art. 6, série provisoire — the WW grammar, the band colours and dimensions, and the Swiss721 BT font"
986
+
987
+ - id: mc-transfert-ww-1978
988
+ class: temporary
989
+ categories: [car, van]
990
+ period: { start: 1978, ended: true }
991
+ year_end_min: 1978
992
+ period_evidence: instrument-in-force
993
+ period_note: >-
994
+ KNOWN-OVER-UNDATED. The series is in the 1978 printing and is NOT in the
995
+ current consolidated text, so it certainly ended — but which amendment
996
+ ended it was not identified. `ended: true` with `year_end_min: 1978`
997
+ rather than a fabricated end year.
998
+ matching: strict
999
+ format:
1000
+ pattern: "WW 99"
1001
+ regex: '\AWW[- ]?\d{1,2}\z'
1002
+ format_evidence: statutory
1003
+ format_note: >-
1004
+ The 1978 "Série Transfert": "les deux lettres WW suivies d'un groupe de
1005
+ deux chiffres, soit WW 01 à WW 99", maximum validity FIFTEEN DAYS. Note
1006
+ how little it resembles the modern WW series — different grammar,
1007
+ different validity, no trailing MC, and a plate rather than a band.
1008
+ design:
1009
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
1010
+ foreground: "#5B9BD5"
1011
+ hex_basis: observed
1012
+ band: { side: none }
1013
+ emblem: { present: true, rendered: placeholder }
1014
+ rear_differs: true
1015
+ plate: null
1016
+ region_encoding: none
1017
+ notes: >-
1018
+ THE 1978 TRANSFER SERIES — a fifteen-day movement permit, WW 01 to WW 99.
1019
+ Modelled expressly so the modern provisional series can be told apart from
1020
+ it, because conflating the two is the origin of the "pre-1979 nnnn WW MC"
1021
+ claim. Reading the as-published 1978 text is what made the distinction
1022
+ visible; the consolidated text alone would have hidden it.
1023
+ sources:
1024
+ - "https://jdm.gouv.mc/content/download/70638/1649149/file/JO_1978_J_6279.pdf # Journal de Monaco n° 6279 du 27 janvier 1978, AM 78-5 art. 6, Série Transfert"