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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
data/data/plates/ro.yml
ADDED
|
@@ -0,0 +1,785 @@
|
|
|
1
|
+
# plates/ro.yml — Romania (PRD-PLATES gate L1, wave 2).
|
|
2
|
+
#
|
|
3
|
+
# WHAT IS PRIMARY HERE AND WHAT IS NOT.
|
|
4
|
+
#
|
|
5
|
+
# The Romanian instrument chain is fully IDENTIFIED — every instrument below is
|
|
6
|
+
# named with its number, its date and its Monitorul Oficial reference — and it
|
|
7
|
+
# was almost entirely UNREACHABLE from this pass's network position.
|
|
8
|
+
# legislatie.just.ro answered four separate requests with a socket hang-up, its
|
|
9
|
+
# print view did the same, the text-extraction proxy returned 422, the fetch tool
|
|
10
|
+
# refuses web.archive.org, and by the second half of the pass every search engine
|
|
11
|
+
# available had either exhausted its budget or moved to a CAPTCHA. The one
|
|
12
|
+
# fragment of instrument text that WAS obtained is art. 23 of the Regulament, and
|
|
13
|
+
# it is quoted verbatim below with its retrieval route stated honestly rather
|
|
14
|
+
# than laundered.
|
|
15
|
+
#
|
|
16
|
+
# EVERYTHING ELSE IS `secondary-wikipedia`, TAGGED PER FACT, WITH THE ARTICLE
|
|
17
|
+
# URL. One `grep -n secondary-wikipedia plates/ro.yml` enumerates the whole
|
|
18
|
+
# Wikipedia-derived surface of this file. A reviewer fingerprinting
|
|
19
|
+
# plates/_decode/ro-counties.yml against Wikipedia should find a match: that is
|
|
20
|
+
# the declared provenance of that table, recorded in the table itself.
|
|
21
|
+
#
|
|
22
|
+
# THE FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
23
|
+
#
|
|
24
|
+
# 1. BUCHAREST'S THREE DIGITS ARE A REAL FORMAT FORK, NOT AN ERROR. A Romanian
|
|
25
|
+
# county plate reads `CJ 12 ABC` — two-letter code, TWO digits, three letters.
|
|
26
|
+
# A Bucharest plate reads `B 123 ABC` — one-letter code, THREE digits, three
|
|
27
|
+
# letters. Both are current, both are ordinary standard-issue plates, and they
|
|
28
|
+
# are DIFFERENT SERIAL SPACES. This file models them as separate series
|
|
29
|
+
# (ro-standard-* and ro-bucharest-*) with separate regexes, because a single
|
|
30
|
+
# regex covering both would accept `CJ 123 ABC`, which Romania does not issue.
|
|
31
|
+
#
|
|
32
|
+
# 2. THE STATUTE IS WIDER THAN WHAT IS ISSUED, AND BUCHAREST IS THE PROOF. Art.
|
|
33
|
+
# 23 of the Regulament prescribes "numărul de ordine, format din cifre arabe"
|
|
34
|
+
# and fixes NO NUMBER OF DIGITS. That is why Bucharest could lengthen its
|
|
35
|
+
# order number from two digits to three without any amendment, and it is why
|
|
36
|
+
# every standard series here carries a `regex_statutory` (PRD-PLATES §2.7)
|
|
37
|
+
# that is genuinely wider than its `regex`: the issued grammar is two digits
|
|
38
|
+
# for counties and three for the capital, but the LEGAL bound is any number of
|
|
39
|
+
# Arabic numerals. Romania is the cleanest example of that tier in the dataset
|
|
40
|
+
# so far — us-fl's statutory tier is a charset bound; Romania's is a LENGTH
|
|
41
|
+
# bound the capital has already used.
|
|
42
|
+
#
|
|
43
|
+
# 3. THE 2006 INSTRUMENTS DID NOT START THE 1992 SERIES. H.G. nr. 1.391/2006 and
|
|
44
|
+
# Ordinul M.A.I. nr. 1.501/2006 are the instruments IN FORCE; the format they
|
|
45
|
+
# describe has run since 1992, fourteen years before either was made. This
|
|
46
|
+
# file therefore dates the standard series to 1992 (secondary) and cites the
|
|
47
|
+
# 2006 instruments for the RULE, never for the PERIOD. Doing the opposite —
|
|
48
|
+
# shipping an instrument's own window as the series period — is the documented
|
|
49
|
+
# Spanish failure (a 1999-2000 decree window shipped for a format that ran
|
|
50
|
+
# three decades) and it is the single easiest way to get a plates file wrong.
|
|
51
|
+
#
|
|
52
|
+
# 4. THE PHYSICAL SPEC IS IN TWO ROMANIAN STANDARDS, AND THEY ARE PAYWALLED.
|
|
53
|
+
# SR 13078:1996 ("Vehicule rutiere. Plăci de înmatriculare retroreflectorizante
|
|
54
|
+
# pentru autovehicule şi remorci") and SR 13140:1996 (the content and structure
|
|
55
|
+
# of provisional and running-test numbers) are the Romanian analogue of BS AU
|
|
56
|
+
# 145e and DIN 74069 — building to them is fine, their text is not
|
|
57
|
+
# redistributable, and in this pass neither was purchased or read. They are
|
|
58
|
+
# the reason every colour and every millimetre below is `secondary-wikipedia`
|
|
59
|
+
# with `hex_basis: observed`. This is the same posture PRD-PLATES §4 records
|
|
60
|
+
# for SAE J686: NAMED, UNPINNED, never quoted.
|
|
61
|
+
#
|
|
62
|
+
# 5. ROMANIA'S EU BAND HAS A HARD DATE AND A SOFT ONE. Accession was 1 January
|
|
63
|
+
# 2007, which is a treaty date and not in doubt. That the twelve-star band
|
|
64
|
+
# REPLACED the Romanian tricolour band on plates on or about that date is
|
|
65
|
+
# reported by a secondary and is tagged as such. The design change is modelled
|
|
66
|
+
# as a series boundary (PRD-PLATES §2.3, the same cut plates/it.yml makes at
|
|
67
|
+
# 1999), so each of the two territorial formats appears twice: once with the
|
|
68
|
+
# national band and once with the EU band.
|
|
69
|
+
jurisdiction: ro
|
|
70
|
+
authority:
|
|
71
|
+
name: Direcţia Regim Permise de Conducere şi Înmatriculare a Vehiculelor (D.R.P.C.I.V.), Ministerul Afacerilor Interne — under O.U.G. nr. 195/2002 and its Regulament
|
|
72
|
+
url: "https://legislatie.just.ro/Public/DetaliiDocument/79058"
|
|
73
|
+
binding: vehicle
|
|
74
|
+
binding_note: >-
|
|
75
|
+
VEHICLE-bound. Art. 23 of the Regulament attributes the number at
|
|
76
|
+
înmatriculare, to the vehicle: "La înmatriculare, fiecărui autovehicul şi
|
|
77
|
+
fiecărei remorci li se atribuie câte un număr de înmatriculare". ONE THING THIS
|
|
78
|
+
FILE DOES NOT ESTABLISH, and a marketplace consumer will want it: whether a
|
|
79
|
+
Romanian mark is REASSIGNED when a vehicle moves to another county. Because the
|
|
80
|
+
territorial code is inside the mark, a county change cannot leave the mark
|
|
81
|
+
intact, so re-plating must happen on some trigger — but WHICH trigger, and
|
|
82
|
+
whether an intra-county sale also re-plates, is in the înmatriculare procedure
|
|
83
|
+
(Ordinul M.A.I. nr. 1.501/2006), which was not retrieved. Recorded as a gap
|
|
84
|
+
rather than inferred: the inference is tempting and this file declines it.
|
|
85
|
+
instrument:
|
|
86
|
+
enabling_act:
|
|
87
|
+
citation: "Ordonanţa de urgenţă a Guvernului nr. 195 din 12 decembrie 2002 privind circulaţia pe drumurile publice"
|
|
88
|
+
monitorul_oficial: "M. Of. nr. 958 din 28 decembrie 2002"
|
|
89
|
+
approved_by: "Legea nr. 49 din 8 martie 2006, M. Of. nr. 246 din 20 martie 2006"
|
|
90
|
+
republished: "M. Of. nr. 670 din 3 august 2006"
|
|
91
|
+
relevant_article: "art. 19 — înmatricularea şi înregistrarea vehiculelor"
|
|
92
|
+
implementing_regulation:
|
|
93
|
+
citation: "Regulamentul de aplicare a Ordonanţei de urgenţă a Guvernului nr. 195/2002 privind circulaţia pe drumurile publice, aprobat prin Hotărârea Guvernului nr. 1.391 din 4 octombrie 2006"
|
|
94
|
+
relevant_article: "art. 23 — the composition of the registration number"
|
|
95
|
+
verbatim: >-
|
|
96
|
+
"La înmatriculare, fiecărui autovehicul şi fiecărei remorci li se atribuie
|
|
97
|
+
câte un număr de înmatriculare compus din indicativul judeţului sau al
|
|
98
|
+
municipiului Bucureşti, numărul de ordine, format din cifre arabe, şi o
|
|
99
|
+
combinaţie de trei litere cu caractere latine majuscule."
|
|
100
|
+
retrieval_caveat: >-
|
|
101
|
+
READ THIS BEFORE RELYING ON THE QUOTE. The sentence above is the
|
|
102
|
+
instrument's own text, but it was NOT read off legislatie.just.ro: four
|
|
103
|
+
direct requests to that host, plus its print view, plus a text-extraction
|
|
104
|
+
proxy, all failed (every URL and failure mode is listed in
|
|
105
|
+
plates/_decode/ro-counties.yml `primary_attempts`). It was recovered from a
|
|
106
|
+
search index's rendering of the legislatie.just.ro page. That is one
|
|
107
|
+
remove from the primary. It is cited here as instrument text because it is
|
|
108
|
+
instrument text, and the remove is stated so a verifier re-derives it from
|
|
109
|
+
the source rather than from this file.
|
|
110
|
+
source: "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament, art. 23 — the composition rule. See retrieval_caveat."
|
|
111
|
+
registration_procedure:
|
|
112
|
+
citation: "Ordinul ministrului administraţiei şi internelor nr. 1.501 din 13 noiembrie 2006 privind procedura înmatriculării, înregistrării, radierii şi eliberarea autorizaţiei de circulaţie provizorie sau pentru probe a vehiculelor"
|
|
113
|
+
monitorul_oficial: "M. Of. nr. 941 din 21 noiembrie 2006"
|
|
114
|
+
note: >-
|
|
115
|
+
The instrument that governs the PROVISIONAL and the RUNNING-TEST (probe)
|
|
116
|
+
plate — both are named in its own title, which is why those two series
|
|
117
|
+
below carry `instrument-in-force` for their rule even though this pass could
|
|
118
|
+
not read the Ordin's text. Not retrieved.
|
|
119
|
+
physical_standards:
|
|
120
|
+
- { citation: "SR 13078:1996 — Vehicule rutiere. Plăci de înmatriculare retroreflectorizante pentru autovehicule şi remorci", status: "NAMED, UNPINNED (ASRO, paywalled). Never quoted here." }
|
|
121
|
+
- { citation: "SR 13140:1996 — the content and structure of provisional and running-test registration numbers", status: "NAMED, UNPINNED (ASRO, paywalled). Never quoted here." }
|
|
122
|
+
historic_instruments:
|
|
123
|
+
- { citation: "Legea nr. 121/1947 asupra poliţiei circulaţiei pe drumurile publice", monitorul_oficial: "M. Of., Partea I, nr. 90 din 21 aprilie 1947", status: "locator only — not retrieved" }
|
|
124
|
+
- { citation: "Regulament de aplicare a Legii privitoare la circulaţia automobilelor", monitorul_oficial: "M. Of. nr. 117 din 28 august 1921", status: "locator only — not retrieved" }
|
|
125
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the instrument NUMBERS, dates and Monitorul Oficial references in this block were taken from the article's reference apparatus and used as LOCATORS. The instruments themselves are cited individually above. Accessed 2026-08-02"
|
|
126
|
+
|
|
127
|
+
# ---------------------------------------------------------------------------
|
|
128
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
129
|
+
# ---------------------------------------------------------------------------
|
|
130
|
+
common:
|
|
131
|
+
mark_composition:
|
|
132
|
+
verbatim: "art. 23 al Regulamentului: 'un număr de înmatriculare compus din indicativul judeţului sau al municipiului Bucureşti, numărul de ordine, format din cifre arabe, şi o combinaţie de trei litere cu caractere latine majuscule.'"
|
|
133
|
+
three_elements:
|
|
134
|
+
- "indicativul judeţului sau al municipiului Bucureşti — the territorial code: ONE letter for the capital, TWO for each county (plates/_decode/ro-counties.yml)"
|
|
135
|
+
- "numărul de ordine, format din cifre arabe — an order number in Arabic numerals, WITH NO DIGIT COUNT PRESCRIBED (see header fact 2)"
|
|
136
|
+
- "o combinaţie de trei litere cu caractere latine majuscule — three uppercase Latin letters"
|
|
137
|
+
note: >-
|
|
138
|
+
Three elements, and only the FIRST and the THIRD are bounded by the text.
|
|
139
|
+
The unbounded middle is the whole reason this file ships a
|
|
140
|
+
`regex_statutory` wider than its `regex`, and the reason Bucharest's fork
|
|
141
|
+
required no amendment.
|
|
142
|
+
alphabet:
|
|
143
|
+
evidence_tier: secondary-wikipedia
|
|
144
|
+
letters_excluded_reported: [Q]
|
|
145
|
+
positional_rules_reported:
|
|
146
|
+
- "the three-letter group is reported never to BEGIN with I or O (confusable with 1 and 0)"
|
|
147
|
+
- "III and OOO are reported not to be issued"
|
|
148
|
+
reserved_combinations_reported: [POL, DEP, SNT, SRI, GUV]
|
|
149
|
+
reserved_note: >-
|
|
150
|
+
Reported as reserved for institutions — POL for police, DEP for the Chamber
|
|
151
|
+
of Deputies, SNT for the Senate, SRI for the intelligence service, GUV for
|
|
152
|
+
the Government. These are reservations INSIDE the ordinary serial space, so
|
|
153
|
+
they are recorded here rather than authored as series: a reserved
|
|
154
|
+
combination changes who holds the plate, not the format or the design, and
|
|
155
|
+
PRD-PLATES §2.3 makes that a note and not a series.
|
|
156
|
+
not_encoded_because: >-
|
|
157
|
+
The three restrictions above do not compose into a single sourced alphabet
|
|
158
|
+
(Q excluded everywhere? only in the letter group? is the leading-I/O rule
|
|
159
|
+
about the first letter of the triple or of the whole mark?), and the
|
|
160
|
+
Regulament's own text prescribes only "trei litere cu caractere latine
|
|
161
|
+
majuscule". No `regex_strict` in this file encodes any of them; the strict
|
|
162
|
+
twins carry the COUNTY CODE SET only.
|
|
163
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # letter Q never used; combinations beginning I or O prohibited; III and OOO not allowed; POL/DEP/SNT/SRI/GUV reserved. Accessed 2026-08-02"
|
|
164
|
+
design_defaults:
|
|
165
|
+
evidence_tier: secondary-wikipedia
|
|
166
|
+
plate_sizes:
|
|
167
|
+
- { type: A, w: 520, h: 110, unit: mm, note: "the standard one-row plate; mandatory at the front" }
|
|
168
|
+
- { type: B, w: 340, h: 200, unit: mm, note: "two-row rear plate" }
|
|
169
|
+
- { type: C, w: 240, h: 130, unit: mm, note: "motorcycles only" }
|
|
170
|
+
colours: "black characters on a white retroreflective ground for the standard series"
|
|
171
|
+
spec_note: >-
|
|
172
|
+
The binding spec is SR 13078:1996, which is paywalled and unread (header
|
|
173
|
+
fact 4). Every hex below is therefore `hex_basis: observed` — an observed
|
|
174
|
+
rendering of a named colour — and NOT a spec claim. Contrast plates/de.yml,
|
|
175
|
+
whose RAL values come out of FZV Anlage 3/4, and plates/at.yml, whose CIE
|
|
176
|
+
chromaticity quadrangles come out of KDV Anlage 5e.
|
|
177
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # the three plate sizes and the standard colours. Accessed 2026-08-02"
|
|
178
|
+
band_history:
|
|
179
|
+
evidence_tier: secondary-wikipedia
|
|
180
|
+
shape_note: "expressed as an ordered list below rather than as a map, because the two entries are periods and not keys"
|
|
181
|
+
periods:
|
|
182
|
+
- { from: 1992, to: 2007, content: "Romanian national flag band at the left" }
|
|
183
|
+
- { from: 2007, content: "EU band — twelve stars over the RO country code" }
|
|
184
|
+
accession_note: >-
|
|
185
|
+
Romania acceded to the European Union on 1 January 2007, which is a treaty
|
|
186
|
+
date and is not in doubt. That the band CHANGED on or about that date is
|
|
187
|
+
the secondary's claim, and it is what the series boundary rests on. No
|
|
188
|
+
Romanian instrument prescribing the band's geometry was reached.
|
|
189
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # Romanian flag band 1992-2006, EU band with twelve stars and the RO code from 2007. Accessed 2026-08-02"
|
|
190
|
+
security_upgrade_2024:
|
|
191
|
+
evidence_tier: secondary-wikipedia
|
|
192
|
+
status: "REPORTED, NOT MODELLED AS A SERIES"
|
|
193
|
+
reported: >-
|
|
194
|
+
A new generation of Romanian plates is reported from September 2024,
|
|
195
|
+
carrying a unique personal identification code, a scannable barcode and
|
|
196
|
+
phosphorescent holograms of the Romanian coat of arms running the length of
|
|
197
|
+
the plate. The SERIAL is not reported to change.
|
|
198
|
+
why_not_a_series: >-
|
|
199
|
+
A design change of that size WOULD be a series boundary under PRD-PLATES
|
|
200
|
+
§2.3, and the honest reason it is not authored as one is that the entire
|
|
201
|
+
evidence for it is a single secondary summary with a month and no
|
|
202
|
+
instrument. Authoring `ro-standard-2024` on that basis would put a
|
|
203
|
+
confidently-dated series into the dataset on the weakest evidence in this
|
|
204
|
+
file. It is recorded here instead, and named as the FIRST target for the
|
|
205
|
+
Romanian verifier: find the instrument, and re-cut ro-standard-2007 at its
|
|
206
|
+
commencement date. The series-id contract (PRD-QUALITY I-5/I-6) makes that
|
|
207
|
+
re-cut cheap — a new id plus an alias — which is precisely why waiting is
|
|
208
|
+
the cheap option and guessing is not.
|
|
209
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # the September 2024 security-feature generation. Accessed 2026-08-02"
|
|
210
|
+
|
|
211
|
+
region_encoding_tables:
|
|
212
|
+
reference: "plates/_decode/ro-counties.yml"
|
|
213
|
+
bare_filename: "ro-counties.yml"
|
|
214
|
+
reference_note: >-
|
|
215
|
+
The path form above is the convention every other reference in this dataset
|
|
216
|
+
uses (all 77 decode-file path references across plates/*.yml spell
|
|
217
|
+
`plates/_decode/<file>.yml`), so it is what this file spells; the bare
|
|
218
|
+
filename is carried alongside for a consumer that resolves by name.
|
|
219
|
+
note: >-
|
|
220
|
+
ONE table, TWO structurally different kinds of row, and the file keeps them
|
|
221
|
+
apart on purpose: `municipality` (B — one letter, THREE digits in the serial)
|
|
222
|
+
and `counties` (41 rows — two letters, TWO digits). The split is the format
|
|
223
|
+
fork of header fact 1, made visible in the decode file so a decoder cannot
|
|
224
|
+
treat the capital as a 42nd county.
|
|
225
|
+
|
|
226
|
+
verifier_targets:
|
|
227
|
+
- "The instrument behind the September 2024 security-feature generation. If it exists and is dated, ro-standard-2007 must be re-cut at its commencement."
|
|
228
|
+
- "The statutory annex of county indicative — the whole of plates/_decode/ro-counties.yml is waiting on it. The cheapest known route is the correct legex.ro document id; legex.ro is reachable, its id for HG 1391/2006 is not known."
|
|
229
|
+
- "The ISO 3166-2:RO register, diffed against the 41 county rows. Recorded in the decode file as an UNVERIFIED hypothesis, deliberately not relied on."
|
|
230
|
+
- "The year Bucharest's three-digit order number began. The only source reached says 'around 2010' and this file's period.start for ro-bucharest-2010 is that soft number — the weakest date in the file."
|
|
231
|
+
- "SR 13078:1996, for every colour and dimension here."
|
|
232
|
+
|
|
233
|
+
series:
|
|
234
|
+
|
|
235
|
+
# =========================================================================
|
|
236
|
+
# THE CURRENT COUNTY SERIES — CJ 12 ABC.
|
|
237
|
+
# =========================================================================
|
|
238
|
+
- id: ro-standard-2007
|
|
239
|
+
class: standard
|
|
240
|
+
categories: [car, van, truck, bus, trailer]
|
|
241
|
+
period: { start: 2007 }
|
|
242
|
+
period_evidence: secondary-wikipedia
|
|
243
|
+
period_note: >-
|
|
244
|
+
2007 is the EU band's arrival, not the serial's. THE SERIAL GRAMMAR HAS RUN
|
|
245
|
+
UNCHANGED SINCE 1992 (see ro-standard-1992) and the 2006 instruments that
|
|
246
|
+
state it are later still — see header fact 3. A consumer wanting "when did
|
|
247
|
+
Romania's current registration mark begin" should read 1992; this series
|
|
248
|
+
answers "when did the plate that carries it start looking like this".
|
|
249
|
+
matching: strict
|
|
250
|
+
format:
|
|
251
|
+
pattern: "LL 99 LLL"
|
|
252
|
+
regex: '\A[A-Z]{2} ?\d{2} ?[A-Z]{3}\z'
|
|
253
|
+
regex_strict: '\A(?:AB|AG|AR|BC|BH|BN|BR|BT|BV|BZ|CJ|CL|CS|CT|CV|DB|DJ|GJ|GL|GR|HD|HR|IF|IL|IS|MH|MM|MS|NT|OT|PH|SB|SJ|SM|SV|TL|TM|TR|VL|VN|VS) ?\d{2} ?[A-Z]{3}\z'
|
|
254
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
255
|
+
tier_note: >-
|
|
256
|
+
THE THREE TIERS, AND WHAT EACH ONE CLAIMS. `regex_strict` is the CLOSED
|
|
257
|
+
COUNTY CODE SET — 41 alternatives, the contents of
|
|
258
|
+
plates/_decode/ro-counties.yml, which is `secondary-wikipedia` and is
|
|
259
|
+
tagged as such there and here. `regex` is the round-trippable printed
|
|
260
|
+
form with any two letters. `regex_statutory` is art. 23's own bound: a
|
|
261
|
+
territorial code, ANY number of Arabic numerals, three uppercase Latin
|
|
262
|
+
letters — and it is the tier that accepts a Bucharest plate too, which is
|
|
263
|
+
correct, because the statute does not distinguish them.
|
|
264
|
+
charset:
|
|
265
|
+
evidence_tier: secondary-wikipedia
|
|
266
|
+
notes: "see common.alphabet — the reported letter restrictions are recorded there and deliberately not encoded."
|
|
267
|
+
separator_note: >-
|
|
268
|
+
Both printed gaps are written as optional emitted SPACEs (PRD-PLATES
|
|
269
|
+
§2.6). No separator GLYPH is prescribed by art. 23, which names three
|
|
270
|
+
element groups and no punctuation between them.
|
|
271
|
+
progression: >-
|
|
272
|
+
Not established. Whether the letter triple or the order number advances
|
|
273
|
+
first, and whether allocation is sequential or pooled, was not sourced —
|
|
274
|
+
so a Romanian plate cannot be dated from its serial by anything in this
|
|
275
|
+
file. Recorded gap.
|
|
276
|
+
design:
|
|
277
|
+
plate: { w: 520, h: 110, unit: mm, note: "type A, mandatory at the front" }
|
|
278
|
+
plate_variants:
|
|
279
|
+
- { w: 340, h: 200, unit: mm, note: "type B, two-row rear plate" }
|
|
280
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
281
|
+
foreground: "#000000"
|
|
282
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed, stars_color: "#FFCC00" }
|
|
283
|
+
rear_differs: false
|
|
284
|
+
rear_differs_note: "Same serial front and rear; only the physical TYPE may differ (a type-B two-row plate at the rear where the housing requires it), which is a housing choice and not a front/rear asymmetry of the UK kind."
|
|
285
|
+
evidence_tier: secondary-wikipedia
|
|
286
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
287
|
+
region_encoding_mechanism: >-
|
|
288
|
+
THE TERRITORIAL CODE IS THE FIRST ELEMENT OF THE MARK ITSELF, by art. 23,
|
|
289
|
+
and it denotes the county of REGISTRATION. Romania is therefore unlike
|
|
290
|
+
Italy (where the province survives only on a removable sticker denoting the
|
|
291
|
+
holder's residence) and unlike France (where the SIV département band is
|
|
292
|
+
owner-chosen and decodes to nothing). A Romanian county claim from a
|
|
293
|
+
Romanian serial is a real claim — subject only to the decode table's own
|
|
294
|
+
tier, which is secondary.
|
|
295
|
+
sources:
|
|
296
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23 — FORMAT, the three elements of the mark, verbatim. See instrument.implementing_regulation.retrieval_caveat"
|
|
297
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the EU band from 2007 (PERIOD START), the two-digit county order number (FORMAT), colours and the 520x110 / 340x200 sizes (DESIGN). Accessed 2026-08-02"
|
|
298
|
+
- "plates/_decode/ro-counties.yml # the 41 county codes that populate regex_strict — itself secondary-wikipedia, declared there"
|
|
299
|
+
notes: >-
|
|
300
|
+
THE CURRENT ROMANIAN COUNTY PLATE. Two-letter county code, two digits,
|
|
301
|
+
three letters, black on white, EU band. This is the series a parse API will
|
|
302
|
+
hit most often and it is the one place in the file where all three regex
|
|
303
|
+
tiers earn their keep at once: the strict twin knows the 41 codes, the
|
|
304
|
+
middle one knows the printed shape, and the statutory one knows that art.
|
|
305
|
+
23 never fixed a digit count. Distinct from ro-standard-1992 in DESIGN
|
|
306
|
+
only — the serial ran continuously across the 2007 boundary and plates
|
|
307
|
+
issued before it were not recalled, so both designs are on the road today.
|
|
308
|
+
|
|
309
|
+
- id: ro-standard-1992
|
|
310
|
+
class: standard
|
|
311
|
+
categories: [car, van, truck, bus, trailer]
|
|
312
|
+
period: { start: 1992, end: 2007 }
|
|
313
|
+
period_evidence: secondary-wikipedia
|
|
314
|
+
period_note: >-
|
|
315
|
+
THE DATE THAT MATTERS IN THIS FILE, AND IT IS SECONDARY. 1992 is when
|
|
316
|
+
Romania replaced the communist-era mark with the county-code format that is
|
|
317
|
+
still in use. No instrument introducing it was reached — the instruments
|
|
318
|
+
this file HAS are from 2002 and 2006 and merely state the rule (header fact
|
|
319
|
+
3). The secondary adds two transition facts recorded in `notes`. END is the
|
|
320
|
+
EU band's arrival, a design change, not a format change.
|
|
321
|
+
matching: strict
|
|
322
|
+
format:
|
|
323
|
+
pattern: "LL 99 LLL"
|
|
324
|
+
regex: '\A[A-Z]{2} ?\d{2} ?[A-Z]{3}\z'
|
|
325
|
+
regex_strict: '\A(?:AB|AG|AR|BC|BH|BN|BR|BT|BV|BZ|CJ|CL|CS|CT|CV|DB|DJ|GJ|GL|GR|HD|HR|IF|IL|IS|MH|MM|MS|NT|OT|PH|SB|SJ|SM|SV|TL|TM|TR|VL|VN|VS) ?\d{2} ?[A-Z]{3}\z'
|
|
326
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
327
|
+
charset:
|
|
328
|
+
evidence_tier: secondary-wikipedia
|
|
329
|
+
notes: "identical to ro-standard-2007; the 2007 change touched only the band."
|
|
330
|
+
design:
|
|
331
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
332
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
333
|
+
foreground: "#000000"
|
|
334
|
+
band: { side: left, content: "Romanian national flag", hex_basis: observed, colors: ["#002B7F", "#FCD116", "#CE1126"], note: "the tricolour band that preceded the EU band; the three hexes are observed renderings of the national colours and are NOT a spec claim" }
|
|
335
|
+
evidence_tier: secondary-wikipedia
|
|
336
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
337
|
+
sources:
|
|
338
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the 1992 introduction of retroreflective plates in the CC 12 ABC format; official vehicles first; most vehicles kept old plates until the end of May 1993; old plates valid until 2000; the Romanian flag band 1992-2006. PERIOD + DESIGN. Accessed 2026-08-02"
|
|
339
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23 — the same composition rule, stated fourteen years later. FORMAT"
|
|
340
|
+
notes: >-
|
|
341
|
+
THE POST-COMMUNIST REFORM PLATE, WITH ITS TRANSITION RECORDED RATHER THAN
|
|
342
|
+
SMOOTHED. Two facts the secondary supplies and this file keeps: the 1992
|
|
343
|
+
rollout went to OFFICIAL vehicles first, with most of the fleet keeping old
|
|
344
|
+
plates until the end of May 1993; and communist-era plates remained VALID
|
|
345
|
+
until 2000. So the honest picture is a series that legally begins in 1992,
|
|
346
|
+
covers the fleet through 1993, and runs in parallel with its predecessor for
|
|
347
|
+
eight years — which is why ro-communist-1966 below carries an end of 1992
|
|
348
|
+
for ISSUANCE and says in its own notes that validity ran to 2000. Distinct
|
|
349
|
+
from ro-standard-2007 in the band only.
|
|
350
|
+
|
|
351
|
+
# =========================================================================
|
|
352
|
+
# THE CAPITAL — THE FORMAT FORK. B 123 ABC, three digits, not two.
|
|
353
|
+
# =========================================================================
|
|
354
|
+
- id: ro-bucharest-2010
|
|
355
|
+
class: standard
|
|
356
|
+
categories: [car, van, truck, bus, trailer]
|
|
357
|
+
period: { start: 2010 }
|
|
358
|
+
period_evidence: corroboration-only
|
|
359
|
+
period_note: >-
|
|
360
|
+
THE WEAKEST DATE IN THIS FILE, AND IT IS FLAGGED AS SUCH. The only source
|
|
361
|
+
reached says the three-digit order number was adopted "starting around
|
|
362
|
+
2010" because the two-digit space ran out. That is an approximation in the
|
|
363
|
+
source and it is recorded as an approximation here: `corroboration-only`,
|
|
364
|
+
not `secondary-dated`, because the source does not actually give a date.
|
|
365
|
+
Treat 2010 as a low-confidence boundary; the true first issue is a named
|
|
366
|
+
verifier target. It is a CAPACITY event, so there may be no instrument to
|
|
367
|
+
find at all — which is itself the finding (header fact 2: no amendment was
|
|
368
|
+
needed).
|
|
369
|
+
matching: strict
|
|
370
|
+
format:
|
|
371
|
+
pattern: "B 999 LLL"
|
|
372
|
+
regex: '\AB ?\d{3} ?[A-Z]{3}\z'
|
|
373
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
374
|
+
charset:
|
|
375
|
+
evidence_tier: secondary-wikipedia
|
|
376
|
+
notes: "see common.alphabet. The leading B is a LITERAL — the indicative of the municipality of Bucharest — and is spelled as one in the pattern, not as an L token."
|
|
377
|
+
capacity_note: >-
|
|
378
|
+
Two digits times the letter triple gave Bucharest on the order of 1.4
|
|
379
|
+
million marks; the third digit multiplies that by ten. The county
|
|
380
|
+
two-digit form is nowhere near exhaustion, which is why the fork exists
|
|
381
|
+
in the capital and only in the capital.
|
|
382
|
+
design:
|
|
383
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
384
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
385
|
+
foreground: "#000000"
|
|
386
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed, stars_color: "#FFCC00" }
|
|
387
|
+
evidence_tier: secondary-wikipedia
|
|
388
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
389
|
+
region_encoding_mechanism: >-
|
|
390
|
+
The single letter B is the indicative of the municipality of Bucharest and
|
|
391
|
+
is carried in the decode file's `municipality` block, deliberately apart
|
|
392
|
+
from the 41 county rows. THERE IS NO MAXIMAL-MUNCH AMBIGUITY with the
|
|
393
|
+
seven B-initial county codes: the character after the territorial code is
|
|
394
|
+
always a DIGIT for the capital and always a LETTER for a county, so
|
|
395
|
+
"B123ABC" and "BC12ABC" separate mechanically even after separator
|
|
396
|
+
stripping.
|
|
397
|
+
sources:
|
|
398
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: Bucharest expanded to a three-digit order number around 2010 owing to capacity. FORMAT + PERIOD. Accessed 2026-08-02"
|
|
399
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23 — 'indicativul judeţului SAU AL MUNICIPIULUI BUCUREŞTI' and an order number of unspecified length: the statutory room the fork used. FORMAT"
|
|
400
|
+
notes: >-
|
|
401
|
+
THE CURRENT BUCHAREST PLATE, AND THE FILE'S HEADLINE STRUCTURAL FACT. One
|
|
402
|
+
letter, THREE digits, three letters — a different serial space from every
|
|
403
|
+
county plate in the country, current at the same time, on the same design.
|
|
404
|
+
It is modelled as its own series rather than as a variant because a variant
|
|
405
|
+
shares the parent's regex and this one cannot: a single regex admitting both
|
|
406
|
+
`CJ 12 ABC` and `B 123 ABC` would also admit `CJ 123 ABC`, which is not
|
|
407
|
+
issued. The fork needed no amendment because art. 23 never fixed a digit
|
|
408
|
+
count, and that absence is the fact that makes `regex_statutory` real here
|
|
409
|
+
rather than decorative.
|
|
410
|
+
|
|
411
|
+
- id: ro-bucharest-2007
|
|
412
|
+
class: standard
|
|
413
|
+
categories: [car, van, truck, bus, trailer]
|
|
414
|
+
period: { start: 2007, end: 2010 }
|
|
415
|
+
period_evidence: corroboration-only
|
|
416
|
+
period_note: "START is the EU band; END is the same soft 'around 2010' boundary as ro-bucharest-2010 and inherits its low confidence."
|
|
417
|
+
matching: strict
|
|
418
|
+
format:
|
|
419
|
+
pattern: "B 99 LLL"
|
|
420
|
+
regex: '\AB ?\d{2} ?[A-Z]{3}\z'
|
|
421
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
422
|
+
design:
|
|
423
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
424
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
425
|
+
foreground: "#000000"
|
|
426
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed, stars_color: "#FFCC00" }
|
|
427
|
+
evidence_tier: secondary-wikipedia
|
|
428
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
429
|
+
sources:
|
|
430
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the Bucharest two-digit form, and its replacement by the three-digit form around 2010. FORMAT + PERIOD. Accessed 2026-08-02"
|
|
431
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23. FORMAT"
|
|
432
|
+
notes: >-
|
|
433
|
+
THE TWO-DIGIT BUCHAREST PLATE WITH THE EU BAND — the short-lived middle
|
|
434
|
+
state, and the one that most often confuses a naive parser, because it has
|
|
435
|
+
the capital's one-letter code AND the counties' two-digit order number.
|
|
436
|
+
Still very much on the road: nothing was recalled when the third digit
|
|
437
|
+
arrived, so a current Bucharest vehicle may carry either length.
|
|
438
|
+
|
|
439
|
+
- id: ro-bucharest-1992
|
|
440
|
+
class: standard
|
|
441
|
+
categories: [car, van, truck, bus, trailer]
|
|
442
|
+
period: { start: 1992, end: 2007 }
|
|
443
|
+
period_evidence: secondary-wikipedia
|
|
444
|
+
period_note: "The capital's form of the 1992 reform mark; ends at the band change, as ro-standard-1992 does."
|
|
445
|
+
matching: strict
|
|
446
|
+
format:
|
|
447
|
+
pattern: "B 99 LLL"
|
|
448
|
+
regex: '\AB ?\d{2} ?[A-Z]{3}\z'
|
|
449
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
450
|
+
design:
|
|
451
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
452
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
453
|
+
foreground: "#000000"
|
|
454
|
+
band: { side: left, content: "Romanian national flag", hex_basis: observed, colors: ["#002B7F", "#FCD116", "#CE1126"] }
|
|
455
|
+
evidence_tier: secondary-wikipedia
|
|
456
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
457
|
+
sources:
|
|
458
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the 1992 format and the national-flag band that preceded EU accession. FORMAT + PERIOD + DESIGN. Accessed 2026-08-02"
|
|
459
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23. FORMAT"
|
|
460
|
+
notes: >-
|
|
461
|
+
THE ORIGINAL BUCHAREST PLATE of the 1992 system, with the tricolour band.
|
|
462
|
+
Recorded separately from ro-standard-1992 for the same reason its
|
|
463
|
+
successors are recorded separately from theirs: the capital's mark has one
|
|
464
|
+
fewer letter and, later, one more digit, and folding it into the county
|
|
465
|
+
series would make the county regex wrong.
|
|
466
|
+
|
|
467
|
+
# =========================================================================
|
|
468
|
+
# MOTORCYCLES — same serial, a plate a third of the size.
|
|
469
|
+
# =========================================================================
|
|
470
|
+
- id: ro-motorcycle-2007
|
|
471
|
+
class: motorcycle
|
|
472
|
+
categories: [motorcycle]
|
|
473
|
+
period: { start: 2007 }
|
|
474
|
+
period_evidence: corroboration-only
|
|
475
|
+
period_note: >-
|
|
476
|
+
The type-C plate size is sourced; its own start date is not. 2007 is
|
|
477
|
+
inherited from the EU-band design this series is described in, not from a
|
|
478
|
+
sourced first issue for motorcycles. Marked `corroboration-only` to say
|
|
479
|
+
exactly that.
|
|
480
|
+
matching: strict
|
|
481
|
+
format:
|
|
482
|
+
pattern: "LL 99 LLL"
|
|
483
|
+
regex: '\A[A-Z]{2} ?\d{2} ?[A-Z]{3}\z'
|
|
484
|
+
regex_strict: '\A(?:AB|AG|AR|BC|BH|BN|BR|BT|BV|BZ|CJ|CL|CS|CT|CV|DB|DJ|GJ|GL|GR|HD|HR|IF|IL|IS|MH|MM|MS|NT|OT|PH|SB|SJ|SM|SV|TL|TM|TR|VL|VN|VS) ?\d{2} ?[A-Z]{3}\z'
|
|
485
|
+
regex_statutory: '\A[A-Z]{1,2} ?\d+ ?[A-Z]{3}\z'
|
|
486
|
+
note: "The SERIAL is the ordinary county mark; only the plate differs. A Bucharest motorcycle carries the capital's one-letter form on the same small plate — not modelled separately, and recorded here as a gap rather than duplicated on a guess."
|
|
487
|
+
design:
|
|
488
|
+
plate: { w: 240, h: 130, unit: mm, note: "type C, motorcycles only — two rows" }
|
|
489
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
490
|
+
foreground: "#000000"
|
|
491
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed }
|
|
492
|
+
display: "rear only"
|
|
493
|
+
evidence_tier: secondary-wikipedia
|
|
494
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
495
|
+
sources:
|
|
496
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: type C, 240 x 130 mm, motorcycles only. DESIGN. Accessed 2026-08-02"
|
|
497
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # H.G. nr. 1.391/2006, Regulament art. 23. FORMAT"
|
|
498
|
+
notes: >-
|
|
499
|
+
THE MOTORCYCLE PLATE — the ordinary county mark on a 240 x 130 mm two-row
|
|
500
|
+
plate. Its own series rather than a variant because the dimensions differ
|
|
501
|
+
(PRD-PLATES §2.3), and `corroboration-only` because the size is sourced
|
|
502
|
+
while the date is inherited. Romania does not appear to give motorcycles a
|
|
503
|
+
distinct serial grammar, which is worth stating as a negative: unlike Italy,
|
|
504
|
+
whose motorcycle plate had five digits where the car had three-plus-two,
|
|
505
|
+
a Romanian motorcycle mark is indistinguishable from a car mark as a string.
|
|
506
|
+
|
|
507
|
+
# =========================================================================
|
|
508
|
+
# THE PRE-1992 SYSTEM.
|
|
509
|
+
# =========================================================================
|
|
510
|
+
- id: ro-communist-1966
|
|
511
|
+
class: standard
|
|
512
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
513
|
+
period: { start: 1966, end: 1992 }
|
|
514
|
+
period_evidence: secondary-wikipedia
|
|
515
|
+
period_note: >-
|
|
516
|
+
Both boundaries are secondary and neither is instrument-dated. The 1966
|
|
517
|
+
start is the reported adoption of the numeric-type-prefix arrangement; the
|
|
518
|
+
1992 end is the reform. ISSUANCE ended in 1992; VALIDITY did not — see
|
|
519
|
+
notes.
|
|
520
|
+
matching: recall-only
|
|
521
|
+
format:
|
|
522
|
+
pattern: "99-LL-9999"
|
|
523
|
+
regex: '\A\d{1,2}-?[A-Z]{1,2}-?\d{1,5}\z'
|
|
524
|
+
pattern_note: >-
|
|
525
|
+
RECALL-ONLY, and for three compounding reasons: the leading numeric group
|
|
526
|
+
is a TYPE code of one or two digits, the territorial letters are a
|
|
527
|
+
different and unsourced code set from the modern one, and the trailing
|
|
528
|
+
sequence length is reported only as "a numerical sequence". The regex is
|
|
529
|
+
a shape bound over all of that; a match is never a validity claim.
|
|
530
|
+
type_prefix:
|
|
531
|
+
evidence_tier: secondary-wikipedia
|
|
532
|
+
note: >-
|
|
533
|
+
THE LEADING DIGITS ENCODED THE VEHICLE KIND, which is the genuinely
|
|
534
|
+
interesting structural difference from the modern mark — Romania used
|
|
535
|
+
to put the vehicle CLASS in the registration and now puts only the
|
|
536
|
+
place. Reported ranges: 1-19 automobiles, 21-30 freight vehicles,
|
|
537
|
+
31-40 buses, 41-45 road tractors, 46-50 motorcycles.
|
|
538
|
+
status_marks:
|
|
539
|
+
evidence_tier: secondary-wikipedia
|
|
540
|
+
note: >-
|
|
541
|
+
Recorded because it is the kind of thing a plate encyclopedia exists
|
|
542
|
+
for and because it is emphatically NOT modellable: high officials in
|
|
543
|
+
the 1970s and 1980s are reported to have carried 1-B marks with three
|
|
544
|
+
digits, sometimes with the middle digit equal to the sum of the outer
|
|
545
|
+
two. That is a social convention inside a serial space, not a grammar,
|
|
546
|
+
and no regex here encodes it.
|
|
547
|
+
design:
|
|
548
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: observed }
|
|
549
|
+
foreground: "#000000"
|
|
550
|
+
band: { side: none }
|
|
551
|
+
evidence_tier: secondary-wikipedia
|
|
552
|
+
region_encoding: none
|
|
553
|
+
region_encoding_note: >-
|
|
554
|
+
THE LETTERS ARE TERRITORIAL BUT plates/_decode/ro-counties.yml DOES NOT
|
|
555
|
+
DECODE THEM. The pre-1992 letter set was built on the administrative
|
|
556
|
+
regions of the day rather than on today's counties — the repeated example
|
|
557
|
+
is the Craiova area running as "OL" for Oltenia — and no primary or
|
|
558
|
+
secondary listing that set was obtained. `region_encoding: none` is
|
|
559
|
+
therefore a REFUSAL rather than a claim of no geography: there is geography
|
|
560
|
+
in the mark and this dataset cannot decode it, which is the safer of the
|
|
561
|
+
two errors for a parse API to inherit.
|
|
562
|
+
sources:
|
|
563
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: the 1966-1992 aa-BB-ccccc arrangement, the vehicle-type digit ranges, the regional letter codes and their derivation, and the status-mark convention. FORMAT + PERIOD. Accessed 2026-08-02"
|
|
564
|
+
notes: >-
|
|
565
|
+
THE COMMUNIST-ERA MARK. Vehicle-type digits, regional letters, sequence —
|
|
566
|
+
the reverse emphasis of the modern mark, which drops the type entirely and
|
|
567
|
+
leads with the place. The transition is the part worth carrying: issuance
|
|
568
|
+
stopped with the 1992 reform, but these plates remained VALID UNTIL 2000,
|
|
569
|
+
so Romanian traffic ran both systems side by side for eight years and a
|
|
570
|
+
photograph from the 1990s proves nothing about a vehicle's registration
|
|
571
|
+
date. Recorded as a period overlap with distinct notes, per PRD-PLATES
|
|
572
|
+
§2.2, rather than as a clean cut.
|
|
573
|
+
|
|
574
|
+
# =========================================================================
|
|
575
|
+
# PROVISIONAL AND RUNNING-TEST — the two plates named in the Ordin's own title.
|
|
576
|
+
# =========================================================================
|
|
577
|
+
- id: ro-provisional-2006
|
|
578
|
+
class: temporary
|
|
579
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
580
|
+
period: { start: 2006 }
|
|
581
|
+
period_evidence: instrument-in-force
|
|
582
|
+
period_note: >-
|
|
583
|
+
2006 IS THE INSTRUMENT, NOT THE FIRST ISSUE, and the distinction is the
|
|
584
|
+
whole point of this field. Ordinul M.A.I. nr. 1.501 din 13 noiembrie 2006
|
|
585
|
+
governs "eliberarea autorizaţiei de circulaţie provizorie" — the rule is
|
|
586
|
+
in force from then. Provisional plates certainly existed before 2006 (SR
|
|
587
|
+
13140:1996 is a 1996 standard for exactly these numbers), so the TRUE start
|
|
588
|
+
of this series is earlier and unestablished. `instrument-in-force` means
|
|
589
|
+
here what it means in plates/de.yml and plates/at.yml: the year of the
|
|
590
|
+
instrument that STATES the rule.
|
|
591
|
+
matching: recall-only
|
|
592
|
+
format:
|
|
593
|
+
pattern: "LL 0999"
|
|
594
|
+
regex: '\A[A-Z]{1,2} ?0\d{2,5}\z'
|
|
595
|
+
pattern_note: >-
|
|
596
|
+
RECALL-ONLY. The reported grammar is a territorial code followed by three
|
|
597
|
+
to six digits of which the first is always 0 and the second is always
|
|
598
|
+
non-zero. The leading zero is the one hard character and it is spelled as
|
|
599
|
+
a LITERAL in the pattern; the second-digit rule is NOT encoded, because a
|
|
600
|
+
regex that encoded it would be narrower than the pattern can generate and
|
|
601
|
+
the length range already makes this a union. A match is a shape hit.
|
|
602
|
+
design:
|
|
603
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
604
|
+
foreground: "#CE1126"
|
|
605
|
+
colour_note: "RED characters on white — the visual tell of a Romanian provisional plate. The hex is an observed rendering; SR 13078:1996 is unread."
|
|
606
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed }
|
|
607
|
+
evidence_tier: secondary-wikipedia
|
|
608
|
+
validity:
|
|
609
|
+
evidence_tier: secondary-wikipedia
|
|
610
|
+
rule: "maximum 30 days, re-issuable to a cumulative 90 days"
|
|
611
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
612
|
+
sources:
|
|
613
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: red characters, county code plus three to six digits with a leading zero, 30-day validity re-issuable to 90. FORMAT + COLOUR + VALIDITY. Accessed 2026-08-02"
|
|
614
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # the Regulament's parent package; the Ordin M.A.I. nr. 1.501/2006 (M. Of. nr. 941 din 21 noiembrie 2006) is the instrument named in instrument.registration_procedure and is the PERIOD basis"
|
|
615
|
+
notes: >-
|
|
616
|
+
THE RED PROVISIONAL PLATE. Romania runs a genuinely separate LONG-TERM
|
|
617
|
+
temporary plate as well — reported as black-charactered, with a number that
|
|
618
|
+
never begins with zero and a red validity strip on the right giving year
|
|
619
|
+
and month, used for foreign residents and leased vehicles. That second
|
|
620
|
+
plate is NOT authored here: it shares neither this one's colour nor its
|
|
621
|
+
leading-zero rule, and no date was sourced for it. It is listed in
|
|
622
|
+
`unmodelled_series`. Splitting them on colour would have been easy and
|
|
623
|
+
wrong without a date for the second.
|
|
624
|
+
|
|
625
|
+
- id: ro-probe-2006
|
|
626
|
+
class: dealer
|
|
627
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
628
|
+
period: { start: 2006 }
|
|
629
|
+
period_evidence: instrument-in-force
|
|
630
|
+
period_note: "As ro-provisional-2006: the Ordin of 2006 names 'autorizaţia de circulaţie ... pentru probe' in its own title. The instrument's year, not a first issue."
|
|
631
|
+
matching: recall-only
|
|
632
|
+
format:
|
|
633
|
+
pattern: "LL 999"
|
|
634
|
+
regex: '\A[A-Z]{1,2} ?\d{3}\z'
|
|
635
|
+
pattern_note: >-
|
|
636
|
+
RECALL-ONLY. Three digits reported to begin at 101, which is a starting
|
|
637
|
+
POINT and not a grammar — this file does not encode "at least 101"
|
|
638
|
+
because it cannot source an upper bound or a wrap rule. The word PROBE is
|
|
639
|
+
reported to be inscribed on the plate; it is carried in `design`, not in
|
|
640
|
+
the serial, on the same principle that keeps the Italian marchio out of
|
|
641
|
+
an Italian serial.
|
|
642
|
+
design:
|
|
643
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
644
|
+
foreground: "#CE1126"
|
|
645
|
+
inscription: "PROBE"
|
|
646
|
+
inscription_note: "a word printed on the plate, not a serial element; a consumer must not concatenate it into the mark"
|
|
647
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed }
|
|
648
|
+
evidence_tier: secondary-wikipedia
|
|
649
|
+
region_encoding: "plates/_decode/ro-counties.yml"
|
|
650
|
+
sources:
|
|
651
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: county code plus three digits from 101, with the PROBE inscription, on the same red-on-white scheme as the provisional plate. FORMAT + DESIGN. Accessed 2026-08-02"
|
|
652
|
+
- "https://legislatie.just.ro/Public/DetaliiDocument/79058 # the Regulament package; Ordinul M.A.I. nr. 1.501/2006 is the instrument that names the probe authorisation. PERIOD"
|
|
653
|
+
notes: >-
|
|
654
|
+
THE RUNNING-TEST (PROBE) PLATE — Romania's trade plate, bound to a business
|
|
655
|
+
rather than to a vehicle, which is why it takes class `dealer` and why its
|
|
656
|
+
categories are the full vehicle range: the plate travels between vehicles,
|
|
657
|
+
not with one. It shares the provisional plate's red-on-white scheme, so
|
|
658
|
+
colour alone does not separate them for an OCR consumer; the PROBE
|
|
659
|
+
inscription and the digit count do.
|
|
660
|
+
|
|
661
|
+
# =========================================================================
|
|
662
|
+
# DIPLOMATIC AND CONSULAR — described by the secondary, dated by inheritance.
|
|
663
|
+
# =========================================================================
|
|
664
|
+
- id: ro-diplomatic-1992
|
|
665
|
+
class: diplomatic
|
|
666
|
+
categories: [car, van]
|
|
667
|
+
period: { start: 1992 }
|
|
668
|
+
period_evidence: corroboration-only
|
|
669
|
+
period_note: >-
|
|
670
|
+
NO DATE WAS SOURCED FOR THIS SERIES. 1992 is inherited from the reform that
|
|
671
|
+
produced the modern Romanian plate system and is a LOWER-BOUND PLACEHOLDER,
|
|
672
|
+
not a first-issue claim — `corroboration-only` marks precisely that. A
|
|
673
|
+
diplomatic plate regime certainly predates 1992; this file does not claim
|
|
674
|
+
to know when the CD six-digit form began.
|
|
675
|
+
matching: strict
|
|
676
|
+
format:
|
|
677
|
+
pattern: "CD 999-999"
|
|
678
|
+
regex: '\ACD ?\d{3}-?\d{3}\z'
|
|
679
|
+
progression:
|
|
680
|
+
evidence_tier: secondary-wikipedia
|
|
681
|
+
note: >-
|
|
682
|
+
A TWO-PART NUMERIC DECODE: the first three digits are a country code
|
|
683
|
+
identifying the sending state and the last three a rank or sequence
|
|
684
|
+
within the mission, with 101 reported for an ambassador or head of
|
|
685
|
+
mission. The country-code table is NOT authored — PRD-PLATES puts
|
|
686
|
+
diplomatic decode tables at gate L4, and plates/fi.yml made the same
|
|
687
|
+
call for the Finnish mission table. Note that this is a MISSION decode,
|
|
688
|
+
not a geographic one, and it does not touch ro-counties.yml.
|
|
689
|
+
design:
|
|
690
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
691
|
+
foreground: "#003399"
|
|
692
|
+
colour_note: "BLUE characters on white. Observed rendering; SR 13078:1996 unread."
|
|
693
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed }
|
|
694
|
+
evidence_tier: secondary-wikipedia
|
|
695
|
+
region_encoding: none
|
|
696
|
+
sources:
|
|
697
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: CD plus six digits in blue, three-digit country code and three-digit rank code, 101 for the head of mission. FORMAT + COLOUR. Accessed 2026-08-02"
|
|
698
|
+
notes: >-
|
|
699
|
+
THE DIPLOMATIC CORPS PLATE. Authored despite an unsourced start date
|
|
700
|
+
because PRD-PLATES gate L1 names diplomatic among the core classes, and
|
|
701
|
+
because the FORMAT and the DECODE MECHANISM are described well enough to be
|
|
702
|
+
useful; the date is the part this file admits it does not have, in the
|
|
703
|
+
period_note rather than in a footnote. A companion series TC — reported for
|
|
704
|
+
consular transport including NATO officers — is described in
|
|
705
|
+
`unmodelled_series` because its scope, as reported, overlaps this one and
|
|
706
|
+
ro-consular-1992 in a way no source consulted resolves.
|
|
707
|
+
|
|
708
|
+
- id: ro-consular-1992
|
|
709
|
+
class: consular
|
|
710
|
+
categories: [car, van]
|
|
711
|
+
period: { start: 1992 }
|
|
712
|
+
period_evidence: corroboration-only
|
|
713
|
+
period_note: "As ro-diplomatic-1992 — 1992 is inherited from the system reform and is a placeholder, not a sourced first issue."
|
|
714
|
+
matching: strict
|
|
715
|
+
format:
|
|
716
|
+
pattern: "CO 999-999"
|
|
717
|
+
regex: '\ACO ?\d{3}-?\d{3}\z'
|
|
718
|
+
progression:
|
|
719
|
+
evidence_tier: secondary-wikipedia
|
|
720
|
+
note: "the same two-part numeric decode as the CD series — country code then rank; table not authored (gate L4)."
|
|
721
|
+
design:
|
|
722
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
723
|
+
foreground: "#003399"
|
|
724
|
+
band: { side: left, color: "#003399", content: eu-stars+RO, hex_basis: observed }
|
|
725
|
+
evidence_tier: secondary-wikipedia
|
|
726
|
+
region_encoding: none
|
|
727
|
+
sources:
|
|
728
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # secondary-wikipedia: CO for consulates, blue characters, same six-digit structure as CD. FORMAT + COLOUR. Accessed 2026-08-02"
|
|
729
|
+
notes: >-
|
|
730
|
+
THE CONSULATE PLATE — a separate series from ro-diplomatic-1992 because the
|
|
731
|
+
class vocabulary distinguishes consular from diplomatic and because the
|
|
732
|
+
prefix differs, which is a format difference. Everything else about it,
|
|
733
|
+
including its date, is as weakly evidenced as its diplomatic sibling and is
|
|
734
|
+
flagged the same way.
|
|
735
|
+
|
|
736
|
+
# ---------------------------------------------------------------------------
|
|
737
|
+
# Described but NOT modelled.
|
|
738
|
+
# ---------------------------------------------------------------------------
|
|
739
|
+
unmodelled_series:
|
|
740
|
+
evidence_tier: secondary-wikipedia
|
|
741
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Romania # every row below. Accessed 2026-08-02"
|
|
742
|
+
reason_not_modelled: "each lacks a defensible date, a determinate format, or both. PRD-PLATES §5.3 prefers the recorded gap."
|
|
743
|
+
rows:
|
|
744
|
+
- token: "long-term temporary plate"
|
|
745
|
+
note: >-
|
|
746
|
+
Reported as black-charactered (not red), with an order number that never
|
|
747
|
+
begins with zero and a red validity strip at the right giving year and
|
|
748
|
+
month; used for foreign residents and leased vehicles. A genuinely
|
|
749
|
+
distinct series from ro-provisional-2006 — different colour, different
|
|
750
|
+
leading-digit rule, different validity mechanism — and undated. Modelling
|
|
751
|
+
it on a guessed start would have made the strongest-looking of this
|
|
752
|
+
file's weak entries.
|
|
753
|
+
- token: "green-lettered plate"
|
|
754
|
+
note: >-
|
|
755
|
+
Reported for zero-emission vehicles: green characters on white, otherwise
|
|
756
|
+
the standard format. NO DATE AT ALL WAS SOURCED — not a year, not a
|
|
757
|
+
month. Since the series would be indistinguishable from ro-standard-2007
|
|
758
|
+
as a STRING (the colour is the whole difference), authoring it without a
|
|
759
|
+
date would add a recall-only duplicate of an existing regex and one
|
|
760
|
+
invented year. Recorded instead. Class `electric` is available in
|
|
761
|
+
_meta/classes.yml the moment a date is.
|
|
762
|
+
- token: "TC"
|
|
763
|
+
note: "reported for consular transport, including NATO officers and consulates — a scope that overlaps both CD and CO as reported, with no source consulted resolving the boundary."
|
|
764
|
+
- token: "A + 3 to 7 digits"
|
|
765
|
+
note: >-
|
|
766
|
+
Military (Armată), reported to start at 100, with historic branch
|
|
767
|
+
prefixes U (Uscat, ground), A (Aer, air), M (Marină, navy) and I
|
|
768
|
+
(Înzestrare, logistics), and with the EU band absent from older plates.
|
|
769
|
+
Undated at both ends. Romania's military registration is also likely to
|
|
770
|
+
sit outside the civil instruments entirely, as Italy's expressly does
|
|
771
|
+
(art. 138 of the Codice della Strada, see plates/it.yml) — a structural
|
|
772
|
+
reason to leave it to a pass that can reach the defence instrument.
|
|
773
|
+
- token: "MAI"
|
|
774
|
+
note: "Ministry of Internal Affairs — gendarmerie, police, emergency services and some ambulances. Prefix reported, format and dates not."
|
|
775
|
+
- token: "yellow local-administration plate"
|
|
776
|
+
note: >-
|
|
777
|
+
Reported for public utilities, tractors, agricultural machinery, scooters
|
|
778
|
+
and golf carts, valid only inside the issuing locality, on a yellow
|
|
779
|
+
ground — and, in the source's own words, of NON-STANDARDISED format
|
|
780
|
+
varying by issuing authority. That is a species PRD-PLATES §2.2 cannot
|
|
781
|
+
represent as one series and should not: a format that varies by locality
|
|
782
|
+
is a table of formats, not a format. Recorded as the shape of the problem
|
|
783
|
+
for whoever attempts it.
|
|
784
|
+
- token: "September 2024 security generation"
|
|
785
|
+
note: "see common.security_upgrade_2024 — the reason it is not a series is given there in full."
|