vehicles 0.9.0 → 0.9.2
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/CHANGELOG.md +57 -7
- data/README.md +353 -69
- data/data/PROVENANCE-vehicles.md +2 -2
- data/data/plates/PROVENANCE.md +2 -2
- data/data/plates/_decode/at-districts.yml +2 -2
- data/data/plates/_decode/cn-issuing-offices.yml +2 -2
- data/data/plates/_decode/cn-provinces.yml +2 -2
- data/data/plates/_decode/cz-kraj.yml +1 -1
- data/data/plates/_decode/dk-serial-blocks.yml +1 -1
- data/data/plates/_decode/es-provinces.yml +1 -1
- data/data/plates/_decode/fr-departements.yml +2 -2
- data/data/plates/_decode/gb-age-identifiers.yml +1 -1
- data/data/plates/_decode/gb-memory-tags.yml +1 -1
- data/data/plates/_decode/gr-prefectures.yml +1 -1
- data/data/plates/_decode/hr-cities.yml +3 -3
- data/data/plates/_decode/ie-counties.yml +3 -3
- data/data/plates/_decode/in-state-codes.yml +2 -2
- data/data/plates/_decode/it-provinces.yml +3 -3
- data/data/plates/_decode/jp-office-marks.yml +2 -2
- data/data/plates/_decode/jp-use-marks.yml +2 -2
- data/data/plates/_decode/kr-authority-marks.yml +1 -1
- data/data/plates/_decode/mx-entity-series.yml +1 -1
- data/data/plates/_decode/my-index-marks.yml +4 -4
- data/data/plates/_decode/pt-trailer-services.yml +1 -1
- data/data/plates/_decode/ro-counties.yml +1 -1
- data/data/plates/_decode/se-diplomatic.yml +1 -1
- data/data/plates/_decode/si-regions.yml +1 -1
- data/data/plates/_decode/ua-regions.yml +1 -1
- data/data/plates/_meta/classes.yml +1 -1
- data/data/plates/_meta/separators.yml +1 -1
- data/data/plates/ad.yml +555 -52
- data/data/plates/ar.yml +8 -8
- data/data/plates/at.yml +91 -10
- data/data/plates/au-act.yml +13 -13
- data/data/plates/au-nsw.yml +9 -9
- data/data/plates/au-nt.yml +13 -14
- data/data/plates/au-qld.yml +7 -7
- data/data/plates/au-sa.yml +7 -7
- data/data/plates/au-tas.yml +10 -10
- data/data/plates/au-vic.yml +6 -6
- data/data/plates/au-wa.yml +8 -8
- data/data/plates/be.yml +11 -11
- data/data/plates/br.yml +14 -14
- data/data/plates/ca-ab.yml +10 -10
- data/data/plates/ca-bc.yml +6 -6
- data/data/plates/ca-mb.yml +4 -4
- data/data/plates/ca-nb.yml +9 -9
- data/data/plates/ca-nl.yml +11 -11
- data/data/plates/ca-ns.yml +12 -12
- data/data/plates/ca-nt.yml +7 -7
- data/data/plates/ca-nu.yml +7 -7
- data/data/plates/ca-on.yml +21 -21
- data/data/plates/ca-pe.yml +13 -13
- data/data/plates/ca-qc.yml +11 -11
- data/data/plates/ca-sk.yml +6 -6
- data/data/plates/ca-yt.yml +6 -6
- data/data/plates/ch.yml +14 -14
- data/data/plates/cn.yml +9 -9
- data/data/plates/cy.yml +6 -6
- data/data/plates/cz.yml +9 -9
- data/data/plates/de.yml +8 -8
- data/data/plates/dk.yml +12 -12
- data/data/plates/ee.yml +13 -13
- data/data/plates/eg.yml +708 -0
- data/data/plates/es.yml +8 -8
- data/data/plates/fi.yml +14 -14
- data/data/plates/fr.yml +12 -12
- data/data/plates/gb.yml +16 -16
- data/data/plates/gr.yml +14 -14
- data/data/plates/hr.yml +15 -15
- data/data/plates/hu.yml +16 -16
- data/data/plates/ie.yml +7 -7
- data/data/plates/in.yml +7 -7
- data/data/plates/is.yml +3 -3
- data/data/plates/it.yml +21 -21
- data/data/plates/jp.yml +121 -121
- data/data/plates/kr.yml +6 -6
- data/data/plates/li.yml +6 -6
- data/data/plates/lt.yml +10 -10
- data/data/plates/lu.yml +4 -4
- data/data/plates/lv.yml +9 -9
- data/data/plates/mc.yml +4 -4
- data/data/plates/mt.yml +5 -5
- data/data/plates/mx.yml +7 -7
- data/data/plates/my.yml +18 -18
- data/data/plates/ng.yml +346 -0
- data/data/plates/nl.yml +5 -5
- data/data/plates/no.yml +7 -7
- data/data/plates/nz.yml +18 -18
- data/data/plates/pl.yml +4 -4
- data/data/plates/pt.yml +13 -5
- data/data/plates/ro.yml +14 -14
- data/data/plates/se.yml +13 -13
- data/data/plates/si.yml +8 -8
- data/data/plates/sk.yml +15 -15
- data/data/plates/sm.yml +7 -7
- data/data/plates/th.yml +10 -10
- data/data/plates/tr.yml +432 -0
- data/data/plates/ua.yml +9 -9
- data/data/plates/us-ak.yml +11 -11
- data/data/plates/us-al.yml +12 -12
- data/data/plates/us-ar.yml +15 -15
- data/data/plates/us-as.yml +10 -10
- data/data/plates/us-az.yml +10 -10
- data/data/plates/us-ca.yml +13 -13
- data/data/plates/us-co.yml +14 -14
- data/data/plates/us-ct.yml +24 -24
- data/data/plates/us-dc.yml +7 -7
- data/data/plates/us-de.yml +10 -10
- data/data/plates/us-fl.yml +17 -17
- data/data/plates/us-ga.yml +10 -10
- data/data/plates/us-gu.yml +11 -11
- data/data/plates/us-hi.yml +11 -11
- data/data/plates/us-ia.yml +9 -9
- data/data/plates/us-id.yml +13 -13
- data/data/plates/us-il.yml +11 -11
- data/data/plates/us-in.yml +9 -9
- data/data/plates/us-ks.yml +8 -8
- data/data/plates/us-ky.yml +11 -11
- data/data/plates/us-la.yml +11 -11
- data/data/plates/us-ma.yml +10 -10
- data/data/plates/us-md.yml +7 -7
- data/data/plates/us-me.yml +16 -16
- data/data/plates/us-mi.yml +8 -8
- data/data/plates/us-mn.yml +13 -13
- data/data/plates/us-mo.yml +13 -13
- data/data/plates/us-mp.yml +12 -12
- data/data/plates/us-ms.yml +8 -8
- data/data/plates/us-mt.yml +12 -12
- data/data/plates/us-nc.yml +12 -12
- data/data/plates/us-nd.yml +10 -10
- data/data/plates/us-ne.yml +10 -10
- data/data/plates/us-nh.yml +8 -8
- data/data/plates/us-nj.yml +8 -8
- data/data/plates/us-nm.yml +14 -14
- data/data/plates/us-nv.yml +18 -18
- data/data/plates/us-ny.yml +17 -17
- data/data/plates/us-oh.yml +13 -13
- data/data/plates/us-ok.yml +12 -12
- data/data/plates/us-or.yml +15 -15
- data/data/plates/us-pa.yml +14 -14
- data/data/plates/us-pr.yml +15 -15
- data/data/plates/us-ri.yml +10 -10
- data/data/plates/us-sc.yml +7 -7
- data/data/plates/us-sd.yml +12 -12
- data/data/plates/us-tn.yml +8 -8
- data/data/plates/us-tx.yml +17 -17
- data/data/plates/us-ut.yml +12 -12
- data/data/plates/us-va.yml +14 -14
- data/data/plates/us-vi.yml +16 -16
- data/data/plates/us-vt.yml +9 -9
- data/data/plates/us-wa.yml +18 -18
- data/data/plates/us-wi.yml +8 -8
- data/data/plates/us-wv.yml +9 -9
- data/data/plates/us-wy.yml +10 -10
- data/data/plates/va.yml +7 -7
- data/data/plates/za.yml +11 -11
- data/data/vehicles.json +121081 -62015
- data/lib/generators/vehicles/templates/initializer.rb +21 -12
- data/lib/generators/vehicles/templates/vehicles_refresh_job.rb +8 -4
- data/lib/vehicles/color.rb +8 -1
- data/lib/vehicles/colors.rb +14 -10
- data/lib/vehicles/configuration.rb +82 -3
- data/lib/vehicles/data_source.rb +220 -0
- data/lib/vehicles/dataset.rb +38 -6
- data/lib/vehicles/dataset_resolution.rb +39 -3
- data/lib/vehicles/dataset_slice.rb +90 -0
- data/lib/vehicles/hosted_result.rb +94 -0
- data/lib/vehicles/http.rb +75 -7
- data/lib/vehicles/id_lookup.rb +37 -0
- data/lib/vehicles/kind_rule.rb +63 -0
- data/lib/vehicles/labels.rb +131 -0
- data/lib/vehicles/make.rb +45 -19
- data/lib/vehicles/model.rb +66 -19
- data/lib/vehicles/model_match.rb +16 -2
- data/lib/vehicles/model_matcher.rb +6 -7
- data/lib/vehicles/plates/series.rb +87 -8
- data/lib/vehicles/plates/template_fill.rb +2 -2
- data/lib/vehicles/plates/templates.rb +9 -5
- data/lib/vehicles/plates.rb +54 -8
- data/lib/vehicles/providers/hosted_provider.rb +145 -32
- data/lib/vehicles/providers/local_provider.rb +2 -2
- data/lib/vehicles/refresh_result.rb +74 -0
- data/lib/vehicles/refresher.rb +190 -54
- data/lib/vehicles/release_checks.rb +72 -0
- data/lib/vehicles/text_matcher.rb +19 -10
- data/lib/vehicles/validators/vehicle_make_validator.rb +18 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +17 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +119 -67
- data/rakelib/data_refresh.rake +1 -1
- data/rakelib/plates_refresh.rake +1 -1
- data/sig/vehicles.rbs +67 -13
- metadata +13 -2
data/data/plates/ng.yml
ADDED
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
# plates/ng.yml — Nigeria (the plates spec gate L5).
|
|
2
|
+
#
|
|
3
|
+
# THE CENTRAL FINDING, AND IT IS AN AWKWARD ONE: **THE GAZETTE DOES NOT CONTAIN
|
|
4
|
+
# THE PLATE MASK.** The National Road Traffic Regulations 2012 (S.I. No. 61,
|
|
5
|
+
# Government Notice No. 270, Official Gazette Vol. 99 No. 101, Lagos,
|
|
6
|
+
# 25 December 2012) regulates plate COLOUR, DIMENSION, EMBLEM PLACEMENT,
|
|
7
|
+
# REFLECTIVITY, FIELD CONTENT and the temporary/trade/fancy regimes in detail —
|
|
8
|
+
# and never once prints a format mask. The familiar `AAA-NNNAA` shape
|
|
9
|
+
# (three letters, three figures, two letters) is TERTIARY ONLY.
|
|
10
|
+
#
|
|
11
|
+
# THIS FILE KEEPS THOSE TWO TIERS APART ON PURPOSE. The design and colour data
|
|
12
|
+
# below is `statute`, quoted to regulation number. The SHAPE is not, and every
|
|
13
|
+
# series whose regex rests on the unverified mask is marked `recall-only` so
|
|
14
|
+
# that a match is a shape hit and nothing more (§2.7). The temptation this file
|
|
15
|
+
# is built to resist is letting the statute-tier badge on the surrounding
|
|
16
|
+
# fields bleed onto the mask sitting between them.
|
|
17
|
+
#
|
|
18
|
+
# WHAT THE STATUTE DOES ESTABLISH ABOUT ORDERING — reg. 39(4)(f), verbatim:
|
|
19
|
+
# "Local Government Area codes shall come first in respect of Private,
|
|
20
|
+
# Commercial and Local Government Area vehicles". So LGA-FIRST IS STATUTORY,
|
|
21
|
+
# and it is the strongest confirmation available of the 2011 redesign's shape.
|
|
22
|
+
# Reg. 3(1) assigns a plate "within the Local Government Code"; reg. 39(2)(a)
|
|
23
|
+
# lists a private plate's fields as the State name, "the licensing office code
|
|
24
|
+
# number, the vehicle registration number and Local Government code number".
|
|
25
|
+
# Reg. 39(5) then delegates the code TABLES entirely: "The Commission shall
|
|
26
|
+
# determine, from time to time, the appropriate number codes for all categories
|
|
27
|
+
# of vehicles." The tables are FRSC's, not the gazette's — which is exactly why
|
|
28
|
+
# no decode table ships here (see V2).
|
|
29
|
+
#
|
|
30
|
+
# FOUR MORE STRUCTURAL FACTS
|
|
31
|
+
#
|
|
32
|
+
# 1. COLOUR IS THE CLASS MARKER AND THE BACKGROUND IS ALWAYS WHITE. Every
|
|
33
|
+
# Nigerian class shares a white ground and is distinguished by LETTERING
|
|
34
|
+
# COLOUR (reg. 39(2), Schedule 5 Figs 6-8). The widely-repeated "black on
|
|
35
|
+
# white" description of the ordinary Nigerian plate is wrong: a private
|
|
36
|
+
# plate letters in BLUE.
|
|
37
|
+
# 2. THE EMBLEM IS A CORNER DEVICE, NOT A SEPARATOR. National FLAG top-left for
|
|
38
|
+
# private and commercial (reg. 39(3)(a)); national COAT OF ARMS top-left for
|
|
39
|
+
# government and LGA (39(3)(b)) and for military and para-military
|
|
40
|
+
# (39(3)(c)). Under §2.6's never_separator reasoning this is a design
|
|
41
|
+
# element carried in `design.emblem` and never in the serial.
|
|
42
|
+
# 3. NO SEPARATOR IS PRESCRIBED ANYWHERE. The statute regulates field content
|
|
43
|
+
# and emblem position and says nothing about hyphens, spaces or dividers. So
|
|
44
|
+
# every regex here spells the group boundaries as the SEPARATOR-ONLY CLASS
|
|
45
|
+
# `[- ]?` sanctioned by §2.8 — the honest encoding of a real gap in the
|
|
46
|
+
# authority's text, exactly as `es-consular-cc-1999` does, rather than an
|
|
47
|
+
# invented hyphen.
|
|
48
|
+
# 4. NIGERIA HAS NO HISTORIC/CLASSIC PLATE CLASS. NRTR 2012 contains no such
|
|
49
|
+
# category. Recorded as ABSENT rather than as not-yet-researched — a
|
|
50
|
+
# different and more useful claim. "Keke"/tricycle likewise never appears as
|
|
51
|
+
# a plate class in the instrument.
|
|
52
|
+
#
|
|
53
|
+
# §VERIFIER — open questions in priority order
|
|
54
|
+
# V1. THE MASK. Pin an FRSC instrument or gazette amendment that states the
|
|
55
|
+
# 3+3+2 shape, then flip the recall-only series to strict.
|
|
56
|
+
# V2. The LGA -> three-letter code table and the 774 LGA count. Delegated to
|
|
57
|
+
# FRSC by reg. 39(5); the Schedule 5 code tables in the gazette PDF are
|
|
58
|
+
# UN-EXTRACTABLE IMAGES. No decode table ships until this is pinned.
|
|
59
|
+
# V3. DIPLOMATIC AND CONSULAR ARE ENTIRELY ABSENT FROM THIS FILE and the
|
|
60
|
+
# reason is specific: reg. 39(4)(e) points to "figure 11 of Schedule 5",
|
|
61
|
+
# and Schedule 5 in the gazette PDF ENDS AT FIGURE 10. Figure 11 is
|
|
62
|
+
# missing from the instrument as published. The purple/green CD/CC
|
|
63
|
+
# description in circulation is tertiary and is NOT recorded here.
|
|
64
|
+
# V4. Serial alphabet, and specifically whether I, O and Q are excluded.
|
|
65
|
+
# NO EVIDENCE EITHER WAY was found, so no `serial_alphabet:` is declared
|
|
66
|
+
# and the global A-Z 0-9 is inherited. Declaring an exclusion nobody
|
|
67
|
+
# sourced would be the Croatian folding error in a new costume.
|
|
68
|
+
# V5. Security features. NO hologram, barcode or NVIS chip is described
|
|
69
|
+
# anywhere in the instrument — only reflectivity. Recorded as absent.
|
|
70
|
+
jurisdiction: ng
|
|
71
|
+
authority:
|
|
72
|
+
name: "Federal Road Safety Commission (FRSC)"
|
|
73
|
+
url: "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf"
|
|
74
|
+
authority_evidence: >-
|
|
75
|
+
Reg. 39(5) gives the Commission the power to determine number codes for all
|
|
76
|
+
categories of vehicles, and reg. 39(10) gives FRSC the production monopoly
|
|
77
|
+
for the Federation. The url is the gazetted instrument that says so.
|
|
78
|
+
NOTE ON THE HOST: frsc.gov.ng has no reachable deep page on the plate
|
|
79
|
+
scheme (sitemap.xml and robots.txt both 404), so the instrument is cited to
|
|
80
|
+
a third-party host whose scan preserves the gazette pagination B 1531-B
|
|
81
|
+
1680 intact. The pagination is why this is treated as `statute` and not as
|
|
82
|
+
a secondary retelling; a verifier with access to an official Federal
|
|
83
|
+
Government Press copy should re-point these URLs.
|
|
84
|
+
binding: vehicle
|
|
85
|
+
series:
|
|
86
|
+
|
|
87
|
+
# =========================================================================
|
|
88
|
+
# THE ORDINARY MARK — flag emblem, colour-by-use. Private and commercial
|
|
89
|
+
# share format, period, dimensions and emblem and differ ONLY in lettering
|
|
90
|
+
# colour, which under §2.3 makes them SUB-ENTRIES on one series rather than
|
|
91
|
+
# two series.
|
|
92
|
+
# =========================================================================
|
|
93
|
+
- id: ng-standard-2011
|
|
94
|
+
class: standard
|
|
95
|
+
categories: [car, van, truck, bus]
|
|
96
|
+
period: { start: 2011 }
|
|
97
|
+
period_evidence: secondary-first-issue
|
|
98
|
+
period_note: >-
|
|
99
|
+
2011 is the commonly-given first-issue year of the national uniform
|
|
100
|
+
scheme and is NOT statutory — the instrument that gazettes the design is
|
|
101
|
+
dated 2012 and does not state a rollout date. Recorded at
|
|
102
|
+
secondary-first-issue tier for that reason. The 2012 regulations are the
|
|
103
|
+
instrument in force over the format; the 2011 date describes issuance.
|
|
104
|
+
matching: recall-only
|
|
105
|
+
format:
|
|
106
|
+
pattern: "LLL999LL"
|
|
107
|
+
# RECALL-ONLY, and this is the file's central honesty point. The mask is
|
|
108
|
+
# TERTIARY: the gazette never prints it. What IS statutory is that the
|
|
109
|
+
# LGA code comes first (reg. 39(4)(f)). Separator positions are spelled
|
|
110
|
+
# as the sanctioned separator-only class of §2.8 because the statute
|
|
111
|
+
# prescribes no separator glyph at all.
|
|
112
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
113
|
+
design:
|
|
114
|
+
plate: { w: 308, h: 155.6, unit: mm }
|
|
115
|
+
plate_note: "reg. 39(1): 12.125 in x 6.125 in for vehicles"
|
|
116
|
+
background_note: "white ground for every class (reg. 39(2)) — colour named in words; no hex asserted"
|
|
117
|
+
foreground_note: "varies BY USE, not by design era — see colour_by_use"
|
|
118
|
+
colour_by_use:
|
|
119
|
+
- { use: private, lettering: blue, cite: "reg. 39(2)(a); State name in black, 'Federal Republic of Nigeria' in black" }
|
|
120
|
+
- { use: commercial, lettering: red, cite: "reg. 39(2)(b); State name in black" }
|
|
121
|
+
emblem: { present: true, device: "national flag, top left", cite: "reg. 39(3)(a)" }
|
|
122
|
+
layout: >-
|
|
123
|
+
Top: the State name. Bottom: "FEDERAL REPUBLIC OF NIGERIA" in black.
|
|
124
|
+
Schedule 5 Figs 1-2 add that the plate "shall in addition contain
|
|
125
|
+
graphics as may be determined by the Commission" — which is why the
|
|
126
|
+
Nigeria map outline and the State slogans that appear on real plates
|
|
127
|
+
are FRSC-determined and NOT gazetted. Those are recorded here as
|
|
128
|
+
FRSC-determined, not as statutory design.
|
|
129
|
+
reflectivity: "reg. 37(4): legible day and night in clear weather at not less than 60 m"
|
|
130
|
+
rear_differs: false
|
|
131
|
+
region_encoding: none
|
|
132
|
+
region_encoding_mechanism: >-
|
|
133
|
+
The leading group is the Local Government Area code and it comes FIRST by
|
|
134
|
+
statute (reg. 39(4)(f)). `none` means NO TABLE SHIPPED: reg. 39(5)
|
|
135
|
+
delegates the code tables to FRSC and the Schedule 5 tables are
|
|
136
|
+
un-extractable images in the gazette scan. See V2.
|
|
137
|
+
notes: >-
|
|
138
|
+
The ordinary Nigerian plate. Private and commercial are one series with
|
|
139
|
+
two lettering colours. A Vehicle Identification Tag (Form MVA 25, reg. 38)
|
|
140
|
+
carrying the same number is displayed on the rear windscreen — a second
|
|
141
|
+
carrier of the registration, not a second series.
|
|
142
|
+
sources:
|
|
143
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 39(4)(f) LGA-first ordering; reg. 39(2)(a)-(b) private blue / commercial red on white; reg. 39(1) 12.125x6.125 in; reg. 39(3)(a) flag top-left; reg. 37(4) 60 m legibility; reg. 38 Form MVA 25 tag; Schedule 5 Figs 1-2 FRSC-determined graphics — Official Gazette Vol. 99 No. 101, 25 Dec 2012, pagination B 1531-B 1680 intact; accessed 2026-09-12"
|
|
144
|
+
- "https://sabilaw.org/national-road-traffic-regulations-2012-with-2016-amendments/ # landing page establishing the instrument identity and the 2016 amendments — accessed 2026-09-12"
|
|
145
|
+
|
|
146
|
+
- id: ng-government-2011
|
|
147
|
+
class: government
|
|
148
|
+
categories: [car, van, truck, bus]
|
|
149
|
+
period: { start: 2011 }
|
|
150
|
+
period_evidence: secondary-first-issue
|
|
151
|
+
matching: recall-only
|
|
152
|
+
format:
|
|
153
|
+
pattern: "LLL999LL"
|
|
154
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
155
|
+
design:
|
|
156
|
+
plate: { w: 308, h: 155.6, unit: mm }
|
|
157
|
+
background_note: "white ground — no hex asserted"
|
|
158
|
+
foreground_note: "green lettering"
|
|
159
|
+
colour_by_use:
|
|
160
|
+
- { use: "federal and state government", lettering: green, cite: "reg. 39(2)(c), Schedule 5 Fig. 7(a)" }
|
|
161
|
+
- { use: "local government / area council", lettering: green, cite: "reg. 39(2)(d)" }
|
|
162
|
+
emblem: { present: true, device: "national Coat of Arms, top left", cite: "reg. 39(3)(b)" }
|
|
163
|
+
layout: "top line carries the Ministry or Parastatal name rather than a State name"
|
|
164
|
+
region_encoding: none
|
|
165
|
+
notes: >-
|
|
166
|
+
Federal, State and Local Government fleets. A SEPARATE SERIES from
|
|
167
|
+
ng-standard-2011 rather than a colour sub-entry of it, because the
|
|
168
|
+
difference is not colour alone: the corner device changes from the
|
|
169
|
+
national flag to the Coat of Arms and the top line changes from a State
|
|
170
|
+
name to a Ministry or Parastatal name. Under §2.3 that is a DESIGN
|
|
171
|
+
difference, and a design difference makes a series.
|
|
172
|
+
sources:
|
|
173
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 39(2)(c)-(d) green lettering for federal/state government and LGA; reg. 39(3)(b) Coat of Arms top-left; Schedule 5 Fig. 7(a) — accessed 2026-09-12"
|
|
174
|
+
|
|
175
|
+
- id: ng-forces-2011
|
|
176
|
+
class: military
|
|
177
|
+
categories: [car, van, truck, bus]
|
|
178
|
+
period: { start: 2011 }
|
|
179
|
+
period_evidence: secondary-first-issue
|
|
180
|
+
matching: recall-only
|
|
181
|
+
format:
|
|
182
|
+
pattern: "LLL999LL"
|
|
183
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
184
|
+
design:
|
|
185
|
+
plate: { w: 308, h: 155.6, unit: mm }
|
|
186
|
+
background_note: "white ground — no hex asserted"
|
|
187
|
+
foreground_note: "black lettering"
|
|
188
|
+
colour_by_use:
|
|
189
|
+
- { use: "armed forces", lettering: black, cite: "reg. 39(2)(e), Schedule 5 Fig. 7(b)" }
|
|
190
|
+
- { use: "para-military, including the police", lettering: black, cite: "Schedule 5 Fig. 8" }
|
|
191
|
+
emblem: { present: true, device: "national Coat of Arms, top left", cite: "reg. 39(3)(c)" }
|
|
192
|
+
layout: "top line carries the Armed Forces or para-military body's name"
|
|
193
|
+
region_encoding: none
|
|
194
|
+
notes: >-
|
|
195
|
+
Armed forces and para-military bodies. THE POLICE SHARE THIS SERIES
|
|
196
|
+
rather than having their own: the instrument groups them under the
|
|
197
|
+
para-military black-lettering figure (Schedule 5 Fig. 8) with the same
|
|
198
|
+
Coat of Arms device, so splitting out a `police` class here would invent
|
|
199
|
+
a distinction the statute does not draw.
|
|
200
|
+
sources:
|
|
201
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 39(2)(e) black lettering for military; reg. 39(3)(c) Coat of Arms; Schedule 5 Fig. 7(b) military and Fig. 8 para-military — accessed 2026-09-12"
|
|
202
|
+
|
|
203
|
+
- id: ng-motorcycle-2011
|
|
204
|
+
class: motorcycle
|
|
205
|
+
categories: [motorcycle]
|
|
206
|
+
period: { start: 2011 }
|
|
207
|
+
period_evidence: secondary-first-issue
|
|
208
|
+
matching: recall-only
|
|
209
|
+
format:
|
|
210
|
+
pattern: "LLL999LL"
|
|
211
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
212
|
+
design:
|
|
213
|
+
plate: { w: 229, h: 102, unit: mm }
|
|
214
|
+
plate_note: "reg. 39(1): 9 in x 4 in for motorcycles"
|
|
215
|
+
background_note: "white ground — no hex asserted"
|
|
216
|
+
foreground_note: "lettering colour follows the vehicle's use, exactly as for four-wheelers"
|
|
217
|
+
colour_by_use:
|
|
218
|
+
- { use: private, lettering: blue, cite: "reg. 37(2)(c)" }
|
|
219
|
+
- { use: commercial, lettering: red, cite: "reg. 37(2)(c)" }
|
|
220
|
+
- { use: government, lettering: green, cite: "reg. 37(2)(c)" }
|
|
221
|
+
- { use: "armed forces", lettering: black, cite: "reg. 37(2)(c)" }
|
|
222
|
+
reflectivity: "reg. 37(4): 30 m for motorcycles, against 60 m for other vehicles"
|
|
223
|
+
region_encoding: none
|
|
224
|
+
notes: >-
|
|
225
|
+
Its own series on DIMENSION grounds — 9x4 in against 12.125x6.125 in — and
|
|
226
|
+
on a second, sourced ground that is easy to miss: the reflectivity
|
|
227
|
+
requirement is HALVED for motorcycles, 30 m rather than 60 m (reg. 37(4)).
|
|
228
|
+
Format is assumed to follow the ordinary mask and is therefore
|
|
229
|
+
recall-only like every other series resting on it.
|
|
230
|
+
sources:
|
|
231
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 39(1) 9x4 in motorcycle plate; reg. 37(2)(c) per-use lettering colours; reg. 37(4) 30 m motorcycle legibility — accessed 2026-09-12"
|
|
232
|
+
|
|
233
|
+
- id: ng-dealer
|
|
234
|
+
class: dealer
|
|
235
|
+
categories: [car, van, truck, bus]
|
|
236
|
+
period: { start: 2012 }
|
|
237
|
+
period_evidence: enabling-statute
|
|
238
|
+
matching: recall-only
|
|
239
|
+
format:
|
|
240
|
+
pattern: "LL L999 9"
|
|
241
|
+
regex: '\A[A-Z]{2}[- ]?[A-Z][- ]?\d{3}[- ]?\d\z'
|
|
242
|
+
design:
|
|
243
|
+
background_note: "not separately specified for dealer plates"
|
|
244
|
+
emblem: { present: true, device: "national flag symbol", cite: "reg. 31" }
|
|
245
|
+
region_encoding: none
|
|
246
|
+
notes: >-
|
|
247
|
+
Trade and dealer plates, issued to motor dealers and mechanic workshop
|
|
248
|
+
operators (regs. 26(4), 30-32, Form MVA 10). Reg. 31 enumerates the
|
|
249
|
+
FIELDS verbatim — national flag symbol, dealer name, dealer's code, State
|
|
250
|
+
code, dealer's number (alphanumeric), individual vehicle code
|
|
251
|
+
(alphanumeric), "Federal Republic of Nigeria" — but again gives no mask;
|
|
252
|
+
the shape here approximates Schedule 5 Fig. 10 and is therefore
|
|
253
|
+
recall-only.
|
|
254
|
+
TWO STATUTORY RESTRICTIONS WORTH CARRYING because they are conditions of
|
|
255
|
+
validity rather than design: a dealer plate may not carry fee-paying
|
|
256
|
+
passengers, and it MAY NOT BE USED BETWEEN 18:00 AND 06:00. Workshop
|
|
257
|
+
plates are road-test only.
|
|
258
|
+
sources:
|
|
259
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # regs. 26(4), 30-32 dealer and workshop plates, Form MVA 10, no fee-paying passengers, 18:00-06:00 prohibition; reg. 31 field list; Schedule 5 Fig. 10 layout — accessed 2026-09-12"
|
|
260
|
+
|
|
261
|
+
- id: ng-temporary-wooden
|
|
262
|
+
class: temporary
|
|
263
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
264
|
+
period: { start: 2012 }
|
|
265
|
+
period_evidence: enabling-statute
|
|
266
|
+
matching: recall-only
|
|
267
|
+
format:
|
|
268
|
+
pattern: "LLL999LL"
|
|
269
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
270
|
+
design:
|
|
271
|
+
material: "wood — reg. 39(7)-(8) expressly contemplates an owner-constructed wooden plate"
|
|
272
|
+
background_note: "same colouring and lettering codes as the lost plate it replaces"
|
|
273
|
+
region_encoding: none
|
|
274
|
+
notes: >-
|
|
275
|
+
THE MOST UNUSUAL SERIES IN THIS FILE AND IT IS ENTIRELY STATUTORY. On
|
|
276
|
+
reporting a plate lost, the owner MAY CONSTRUCT A TEMPORARY PLATE IN THE
|
|
277
|
+
FORM OF WOOD, carrying the same colouring and lettering codes, until the
|
|
278
|
+
replacement issues — which must be within 14 days of payment of the fee
|
|
279
|
+
(reg. 39(7)-(8)). It reproduces the EXISTING registration rather than
|
|
280
|
+
carrying a serial of its own, which is the `nl-export` situation: the
|
|
281
|
+
regex is a shape union and a match is emphatically not a claim that the
|
|
282
|
+
string is a valid temporary registration. recall-only for that reason as
|
|
283
|
+
well as for the mask.
|
|
284
|
+
sources:
|
|
285
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 39(7)-(8) owner-constructed wooden temporary plate, same colouring/lettering codes, replacement within 14 days of fee payment — accessed 2026-09-12"
|
|
286
|
+
|
|
287
|
+
- id: ng-fancy
|
|
288
|
+
class: personalized
|
|
289
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
290
|
+
period: { start: 2012 }
|
|
291
|
+
period_evidence: enabling-statute
|
|
292
|
+
matching: strict
|
|
293
|
+
format:
|
|
294
|
+
pattern: "LLLLLLLL"
|
|
295
|
+
# THE ONLY CHARACTER-COUNT RULE IN THE ENTIRE INSTRUMENT, so this is the
|
|
296
|
+
# one series in the file whose regex IS the sourced grammar.
|
|
297
|
+
regex: '\A[A-Z0-9]{1,8}\z'
|
|
298
|
+
design:
|
|
299
|
+
background_note: "not separately specified; the fancy regime governs the SERIAL, not a distinct design"
|
|
300
|
+
region_encoding: none
|
|
301
|
+
notes: >-
|
|
302
|
+
Special or fancy numbers. `strict`, and it is the only strict series here,
|
|
303
|
+
because reg. 5(3) states an actual grammar: a special or fancy number
|
|
304
|
+
"shall not exceed eight digits made up of alphabets, numerals or
|
|
305
|
+
combination of both". That is a real statutory bound and the regex is
|
|
306
|
+
exactly it — note it is the OUTER bound, so a match is a well-formedness
|
|
307
|
+
claim under §2.7 even though FRSC approves individual combinations "as it
|
|
308
|
+
deems fit" on payment.
|
|
309
|
+
Transfer between vehicles is permitted but requires POLICE CLEARANCE plus
|
|
310
|
+
an application to the State of last registration (reg. 6) — a condition
|
|
311
|
+
on the serial following a person, and the Nigerian analogue of the za.yml
|
|
312
|
+
personalised-number case.
|
|
313
|
+
FRSC's own 2024 Service Level Agreements to PEBEC price the classes
|
|
314
|
+
(production / State disposal, in naira): standard private 5,000/12,500;
|
|
315
|
+
MV fancy 40,000/80,000; motorcycle 1,500/3,000; articulated 10,000/20,000;
|
|
316
|
+
out-of-series 20,000/40,000; government fancy MV 20,000/20,000. Recorded
|
|
317
|
+
as `official` tier and as context, not as schema data — the plates spec §2.5
|
|
318
|
+
excludes fees from the model.
|
|
319
|
+
sources:
|
|
320
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 5(3) not exceeding eight alphanumeric characters; reg. 6 transfer requires police clearance and application to the State of last registration — accessed 2026-09-12"
|
|
321
|
+
- "https://frsc.gov.ng/wp-content/uploads/2024/05/SLAs-TO-PEBEC.pdf # FRSC 2024 Service Level Agreements to PEBEC: number-plate price table and issuance chain — OFFICIAL tier, published on frsc.gov.ng; accessed 2026-09-12"
|
|
322
|
+
|
|
323
|
+
- id: ng-out-of-series
|
|
324
|
+
class: standard
|
|
325
|
+
categories: [car, van, truck, bus]
|
|
326
|
+
period: { start: 2012 }
|
|
327
|
+
period_evidence: enabling-statute
|
|
328
|
+
matching: recall-only
|
|
329
|
+
format:
|
|
330
|
+
pattern: "LLL999LL"
|
|
331
|
+
regex: '\A[A-Z]{3}[- ]?\d{3}[- ]?[A-Z]{2}\z'
|
|
332
|
+
design:
|
|
333
|
+
background_note: "not separately specified"
|
|
334
|
+
region_encoding: none
|
|
335
|
+
notes: >-
|
|
336
|
+
Out-of-series allocations: reg. 5(1) provides for a code "not in the
|
|
337
|
+
series being issued at the time, but in the control of the Central Motor
|
|
338
|
+
Registry", applied for via Schedule 5 Fig. 9 and Form MVA2. Recorded as
|
|
339
|
+
its own series because it is a distinct ALLOCATION regime with its own
|
|
340
|
+
form and its own controlling body, and priced separately in the FRSC
|
|
341
|
+
schedule. Overlaps ng-standard-2011 in shape by construction — the whole
|
|
342
|
+
point of an out-of-series number is that it looks ordinary while coming
|
|
343
|
+
from a reserved pool — which is why both are recall-only and why this
|
|
344
|
+
note differs from that one.
|
|
345
|
+
sources:
|
|
346
|
+
- "https://sabilaw.org/wp-content/uploads/2021/12/National-Road-Traffic-Regulations-2012.pdf # reg. 5(1) out-of-series codes under Central Motor Registry control, Schedule 5 Fig. 9, Form MVA2 — accessed 2026-09-12"
|
data/data/plates/nl.yml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# plates/nl.yml — Netherlands (
|
|
1
|
+
# plates/nl.yml — Netherlands (the plates spec gate L0 pilot, COMPLETION PASS).
|
|
2
2
|
#
|
|
3
3
|
# Supersedes the 4-entry L0 seed. Entry ids from the seed are preserved
|
|
4
4
|
# verbatim (nl-sidecode11-moped, nl-sidecode11-agricultural,
|
|
5
5
|
# nl-sidecode11-car, nl-historic-darkblue) per the id contract
|
|
6
|
-
# (
|
|
6
|
+
# (the quality spec I-5/I-6); their DATA is corrected where the RDW pages
|
|
7
7
|
# contradicted the seed — corrections are called out in each `notes`.
|
|
8
8
|
#
|
|
9
9
|
# THE NL MODELLING RULE (EU dossier finding 6, binding): a sidecode is a
|
|
@@ -93,7 +93,7 @@ series:
|
|
|
93
93
|
design: { background: { color: "#7CB9E8", finish: retroreflective, hex_basis: observed }, foreground: "#000000", plate: { w: 520, h: 110, unit: mm } }
|
|
94
94
|
note: >-
|
|
95
95
|
Light-blue taxi plates carry the vehicle's OWN registration — colour-only
|
|
96
|
-
variant of this series, so a sub-entry per
|
|
96
|
+
variant of this series, so a sub-entry per the plates spec §2.3, not a series.
|
|
97
97
|
Models 27.30 (long), 27.31 (rectangular), 18.2 (American, light blue).
|
|
98
98
|
sources:
|
|
99
99
|
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # taxikentekenplaat lichtblauw met zwarte letters en cijfers; 520x110 / 340x210 / 310x110"
|
|
@@ -938,7 +938,7 @@ series:
|
|
|
938
938
|
categories: [tractor, machine, trailer]
|
|
939
939
|
period: { start: 1978 }
|
|
940
940
|
period_evidence: eligibility-cutoff
|
|
941
|
-
# RECALL-ONLY (
|
|
941
|
+
# RECALL-ONLY (the plates spec §2.7): RDW exempts these vehicles from the
|
|
942
942
|
# 2+2+2 registration-shape rule, so the regex is the same fourteen-shape
|
|
943
943
|
# union as nl-export. A match is a SHAPE hit — it says the string has a
|
|
944
944
|
# shape the Netherlands has issued, not that it is a valid historic
|
|
@@ -979,7 +979,7 @@ series:
|
|
|
979
979
|
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer, tractor, machine]
|
|
980
980
|
period: { start: 1951 }
|
|
981
981
|
period_evidence: earliest-underlying-series # the regime's own start is unsourced
|
|
982
|
-
# RECALL-ONLY (
|
|
982
|
+
# RECALL-ONLY (the plates spec §2.7): the export plate carries the vehicle's
|
|
983
983
|
# OWN existing registration, so the regex is the union of all fourteen
|
|
984
984
|
# RDW sidecode shapes. A match is a SHAPE hit, never the claim that the
|
|
985
985
|
# string is a valid export registration — the union admits vowel serials
|
data/data/plates/no.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/no.yml — Norway (
|
|
1
|
+
# plates/no.yml — Norway (the plates spec gate L1, wave 2).
|
|
2
2
|
#
|
|
3
3
|
# THE ONE STRUCTURAL FACT THAT SHAPES THIS FILE, AND IT IS THE OPPOSITE OF
|
|
4
4
|
# SPAIN'S: Norway's HISTORIC plate formats are instrument-dated to the day,
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
# Note the FOR number: 1994-10-04-918, not the 1994-03-25-918 that circulates.
|
|
49
49
|
#
|
|
50
50
|
# A MISTAKE MADE AND CAUGHT IN THIS PASS, recorded because it is the exact
|
|
51
|
-
# defect
|
|
51
|
+
# defect the plates spec §9 warns about. The § 2-11 footnote lists twelve amending
|
|
52
52
|
# forskrifter, and reading FOR-2015-07-13-888 suggested it "introduced" the
|
|
53
53
|
# green varebil plate in § 2-11 tredje ledd bokstav b. It did not. That
|
|
54
54
|
# forskrift RENUMBERED the whole of kapittel 2 (the colour rules had lived in
|
|
@@ -214,7 +214,7 @@ series:
|
|
|
214
214
|
The gap between letter group and digit group is a printed GAP with no
|
|
215
215
|
glyph — no instrument prescribes a separator, since no instrument
|
|
216
216
|
prescribes the composition at all. Written as the emitted SPACE per
|
|
217
|
-
|
|
217
|
+
the plates spec §2.6 and optional in the regex.
|
|
218
218
|
design:
|
|
219
219
|
plate: { w: 520, h: 110, unit: mm }
|
|
220
220
|
plate_variants:
|
|
@@ -311,7 +311,7 @@ series:
|
|
|
311
311
|
- "https://no.wikipedia.org/wiki/Kjennemerke_for_motorkj%C3%B8ret%C3%B8y_i_Norge # secondary-wikipedia (rev. 2026-07-16): the source treats 1971-2001 as ONE plate design and records no 1982 event at all — the disagreement noted below. Accessed 2026-08-02"
|
|
312
312
|
notes: >-
|
|
313
313
|
THE SECOND TWO-LETTER ORDER, 1 April 1982 to 31 December 2001. A REAL
|
|
314
|
-
DISAGREEMENT, recorded rather than averaged (
|
|
314
|
+
DISAGREEMENT, recorded rather than averaged (the plates spec §5.3): the
|
|
315
315
|
authority's regulation splits the two-letter era at 31 March 1982 and
|
|
316
316
|
names a different technical specification on each side, while every
|
|
317
317
|
secondary source consulted — including a plate image captioned
|
|
@@ -635,7 +635,7 @@ series:
|
|
|
635
635
|
E-series combination is what lets toll plazas, bus lanes, ferries and
|
|
636
636
|
parking enforce zero-emission privileges from the plate alone, which is
|
|
637
637
|
why it is modelled as a series in its own right rather than a note on
|
|
638
|
-
no-standard-2002 (
|
|
638
|
+
no-standard-2002 (the plates spec §2.3 period limb — it starts three years
|
|
639
639
|
earlier). NOT A LEGAL CLASS, and this is an evidenced negative worth
|
|
640
640
|
having: neither FOR-1990-01-25-92 kapittel 2 nor kjøretøyforskriften
|
|
641
641
|
kapittel 39 mentions elbil, elektrisk drift or EL-kjennemerke anywhere.
|
|
@@ -925,7 +925,7 @@ series:
|
|
|
925
925
|
progression: >-
|
|
926
926
|
THE FIRST DIGIT IS THE ISSUING POLICE DISTRICT — 1 Oslo, 2 Larvik,
|
|
927
927
|
3 Kristiansand, 4 Stavanger, 5 Bergen, 6 Trondheim, 7 Troms. A small
|
|
928
|
-
decode, inline rather than in a decode file per
|
|
928
|
+
decode, inline rather than in a decode file per the plates spec §2.4. In 2004
|
|
929
929
|
Oslo exhausted its combinations and restarted its sequence from the
|
|
930
930
|
beginning, so the digit does NOT support any age inference.
|
|
931
931
|
district_codes:
|
|
@@ -984,7 +984,7 @@ series:
|
|
|
984
984
|
_meta/separators.yml's emitted SPACE is serial-significant rather
|
|
985
985
|
than a group gap, and a separator-stripping consumer will silently
|
|
986
986
|
collapse "MIN BIL" to "MINBIL". Recorded rather than resolved: it is
|
|
987
|
-
a genuine tension with
|
|
987
|
+
a genuine tension with the plates spec §2.6, not a data error, and it
|
|
988
988
|
affects only this series.
|
|
989
989
|
The authority narrows the statute further by plate size — seven
|
|
990
990
|
characters fit the 52 x 11 cm plate, six the small, US and motorcycle
|
data/data/plates/nz.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/nz.yml — New Zealand (
|
|
1
|
+
# plates/nz.yml — New Zealand (the plates spec gate L3).
|
|
2
2
|
#
|
|
3
3
|
# EVERY format, colour and class claim in this file is read off one of two
|
|
4
4
|
# instruments on legislation.govt.nz, or off a NZ Transport Agency Waka Kotahi
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
# THEREFORE PRINTS NO SEPARATOR GLYPH AND TREATS INTERNAL SPACING AS
|
|
111
111
|
# NON-IDENTITY-BEARING: every `pattern` and every regex in this file is
|
|
112
112
|
# written contiguously, with no emitted separator at all, and a consumer's
|
|
113
|
-
# separator-forgiving tier (
|
|
113
|
+
# separator-forgiving tier (the plates spec § 2.6) is what absorbs a plate that
|
|
114
114
|
# happens to be set with a gap.
|
|
115
115
|
#
|
|
116
116
|
# 4. THE BLACK PLATE OF 1964 IS NOT HISTORY — IT IS A CURRENT LAWFUL FORM.
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
# `format.regex_statutory` carries the outer bound of the CURRENT law — reg
|
|
136
136
|
# 33(1)'s bare six- or five-character cap — which is far wider than anything
|
|
137
137
|
# issued and is the reason `matching: strict` is still correct on the standard
|
|
138
|
-
# series (
|
|
138
|
+
# series (the plates spec § 2.7: narrower than the statute is still strict).
|
|
139
139
|
jurisdiction: nz
|
|
140
140
|
authority:
|
|
141
141
|
name: NZ Transport Agency Waka Kotahi (the Registrar of Motor Vehicles under Part 17 of the Land Transport Act 1998)
|
|
@@ -377,7 +377,7 @@ common:
|
|
|
377
377
|
it if you turn the plate to a 15–30-degree angle. This helps to identify if
|
|
378
378
|
a plate is authentic or fake." A RETROREFLECTIVE-SHEETING WATERMARK, not
|
|
379
379
|
printed artwork: it is visible only off-axis, it carries no information,
|
|
380
|
-
and a renderer must not draw it as a graphic element (
|
|
380
|
+
and a renderer must not draw it as a graphic element (the plates spec § 3).
|
|
381
381
|
manufacture: >-
|
|
382
382
|
Plates are manufactured under contract, not by the agency. NZTA routes
|
|
383
383
|
duplicate orders to LicenSys ("0800 REMAKE") and personalised sales to
|
|
@@ -447,12 +447,12 @@ common:
|
|
|
447
447
|
though CR marks are attested on New Zealand ministerial cars long before
|
|
448
448
|
2011 (see nz-government-cr notes).
|
|
449
449
|
agency_disagreement: >-
|
|
450
|
-
RECORDED, NOT AVERAGED (
|
|
450
|
+
RECORDED, NOT AVERAGED (the plates spec § 5.3). NZTA's own history page groups
|
|
451
451
|
the marks wrongly: "Diplomatic plates – for vehicles owned by embassies,
|
|
452
452
|
consulates and high commissions (DC, DCC, FC and FCC plates) and
|
|
453
453
|
ministerial vehicles (CC, CCC, CR and CROWN plates)." Schedule 4 assigns CC
|
|
454
454
|
and CCC to CONSULAR missions, not to ministers. THE INSTRUMENT IS THE
|
|
455
|
-
AUTHORITY (
|
|
455
|
+
AUTHORITY (the plates spec § 5.3: "MAJORITY IS NOT AUTHORITY; the authority is
|
|
456
456
|
the authority"), so this file follows Schedule 4 and records the agency
|
|
457
457
|
page's error here.
|
|
458
458
|
source: "https://www.legislation.govt.nz/regulation/public/2011/0079/latest/whole.html # reg 37 and Schedule 4, all five rows verbatim"
|
|
@@ -473,7 +473,7 @@ classes_not_modelled:
|
|
|
473
473
|
limb (b) — "a letter, number, symbol, or distinguishing mark" — so the
|
|
474
474
|
crown IS the identifier in law. A regex cannot express this and none is
|
|
475
475
|
authored; a renderer must place the emblem and no characters.
|
|
476
|
-
emblem_risk: "the New Zealand crown device is a vice-regal insignia;
|
|
476
|
+
emblem_risk: "the New Zealand crown device is a vice-regal insignia; the plates spec § 3's neutral-placeholder rule applies and no artwork is claimed clean"
|
|
477
477
|
sources:
|
|
478
478
|
- "https://www.legislation.govt.nz/regulation/public/2011/0079/latest/whole.html # Schedule 4 item 1; reg 3 'unique identifier' limb (b); reg 37(2) 'distinguished solely by the symbol'"
|
|
479
479
|
supplementary:
|
|
@@ -578,7 +578,7 @@ series:
|
|
|
578
578
|
33(1)(b), which prescribes nothing but a six-character cap: under it
|
|
579
579
|
"4ZZ99Z" is a perfectly lawful ordinary identifier that this series
|
|
580
580
|
would never issue. A match on `regex` is a real claim about THIS series
|
|
581
|
-
(
|
|
581
|
+
(the plates spec § 2.7, the us-fl case), which is why `matching` is `strict`.
|
|
582
582
|
progression: >-
|
|
583
583
|
NZTA, verbatim: "The new series of three letters and three numbers – from
|
|
584
584
|
AAA104 ongoing to ZZZ999 – offers about 17.6 million possible
|
|
@@ -681,7 +681,7 @@ series:
|
|
|
681
681
|
THE REFLECTORISED TWO-LETTER PLATE — same mark space as nz-standard-1964,
|
|
682
682
|
opposite colours. Cut as its own series and not as a design variant
|
|
683
683
|
because BOTH the period and the design differ, which is exactly the
|
|
684
|
-
|
|
684
|
+
the plates spec § 2.3 test, and because the two colourways are not successive
|
|
685
685
|
states of one specification: reg 33(4) still offers them as live
|
|
686
686
|
alternatives (a) and (b) with no cut-off, so a consumer needs to be able
|
|
687
687
|
to say "black-on-white, two letters, so issued between November 1986 and
|
|
@@ -843,7 +843,7 @@ series:
|
|
|
843
843
|
obvious candidate is reg 33(1)(a)'s five-character cap — but the fullest
|
|
844
844
|
shape this series' own grammar allows, three numerals plus three letters,
|
|
845
845
|
is SIX characters, so the 2011 cap does not contain this series' regex and
|
|
846
|
-
writing it as `regex_statutory` would have inverted the
|
|
846
|
+
writing it as `regex_statutory` would have inverted the plates spec § 2.7
|
|
847
847
|
tier order. The cap post-dates the series' issuance window in any case.
|
|
848
848
|
The correct outer bound is SR 1995/136 cl 2(3)(a)(ii) itself, which
|
|
849
849
|
`regex` already carries.
|
|
@@ -953,7 +953,7 @@ series:
|
|
|
953
953
|
secondary account that a numeral-first trailer shape replaced it that year,
|
|
954
954
|
against an agency page that still calls A111A-Z999Z current — and the agency
|
|
955
955
|
page is visibly stale elsewhere (it also calls the pre-2007 motorcycle range
|
|
956
|
-
current). Both readings are recorded and neither is averaged (
|
|
956
|
+
current). Both readings are recorded and neither is averaged (the plates spec
|
|
957
957
|
§ 5.3). A verifier with access to a current NZTA trailer-series statement
|
|
958
958
|
settles this in one step; until then, treat the end date as the softest
|
|
959
959
|
claim in this file.
|
|
@@ -992,12 +992,12 @@ series:
|
|
|
992
992
|
display: "one plate, rear (reg 39(2))"
|
|
993
993
|
region_encoding: none
|
|
994
994
|
sources:
|
|
995
|
-
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Zealand # SECONDARY, and the ONLY source for this arrangement and its 2024 start; accessed 2026-08-02. Extracted as a FACT under
|
|
995
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Zealand # SECONDARY, and the ONLY source for this arrangement and its 2024 start; accessed 2026-08-02. Extracted as a FACT under the plates spec § 4's Wikipedia row and tagged `secondary-wikipedia` at point of use; the article's own section carries an 'unsourced section' banner"
|
|
996
996
|
- "https://www.legislation.govt.nz/regulation/public/2011/0079/latest/whole.html # reg 33(1)(a) the five-character cap, 33(4)(b) the colours, 39(2) the single rear plate — everything about this series EXCEPT its arrangement"
|
|
997
997
|
notes: >-
|
|
998
998
|
THE REPORTED CURRENT TRAILER SHAPE, CARRIED ON A SECONDARY AND FLAGGED IN
|
|
999
999
|
EVERY FIELD THAT MATTERS. It is authored rather than dropped because
|
|
1000
|
-
jurisdiction-completeness (
|
|
1000
|
+
jurisdiction-completeness (the plates spec § 5.1) asks for the CURRENT series of
|
|
1001
1001
|
every core class, and because a tagged secondary claim is recoverable in one
|
|
1002
1002
|
pass while a silent omission is not. Everything here except the arrangement
|
|
1003
1003
|
and the year is instrument-sourced. The same secondary reports two
|
|
@@ -1044,7 +1044,7 @@ series:
|
|
|
1044
1044
|
`[A-Z0-9]{1,6}` is reg 34(2)'s cap and nothing narrower exists to state:
|
|
1045
1045
|
it necessarily contains every ordinary, trade and official identifier in
|
|
1046
1046
|
New Zealand, so a match means "this string is a shape New Zealand could
|
|
1047
|
-
have issued" and never "this is a personalised plate".
|
|
1047
|
+
have issued" and never "this is a personalised plate". The plates spec § 2.7's
|
|
1048
1048
|
recall-only definition — "a union, a catch-all ... a shape hit and nothing
|
|
1049
1049
|
more" — describes it exactly. `regex_strict` is forbidden here and none is
|
|
1050
1050
|
wanted: the Registrar's refusal grounds (reg 34(3): already allocated,
|
|
@@ -1074,7 +1074,7 @@ series:
|
|
|
1074
1074
|
NZTA states the palette in its own words: personalised plate
|
|
1075
1075
|
characters "can be: white or silver on a black background; black, red
|
|
1076
1076
|
or blue on a white background." A colour-only variant of the same
|
|
1077
|
-
format and the same series, hence a sub-entry (
|
|
1077
|
+
format and the same series, hence a sub-entry (the plates spec § 2.3) and
|
|
1078
1078
|
not a series of its own. Its 2022 launch is a secondary claim and is
|
|
1079
1079
|
NOT carried as a period.
|
|
1080
1080
|
evidence: secondary-wikipedia
|
|
@@ -1221,7 +1221,7 @@ series:
|
|
|
1221
1221
|
notes: >-
|
|
1222
1222
|
THE HEAVY TRADE PLATE — a distinct series and not a variant, because the
|
|
1223
1223
|
numeral run is FOUR rather than five and the vertical field carries an extra
|
|
1224
|
-
token, so both the format and the design differ (
|
|
1224
|
+
token, so both the format and the design differ (the plates spec § 2.3). It came
|
|
1225
1225
|
into existence with the Road User Charges regime's vocabulary: reg 36(1)(a)
|
|
1226
1226
|
defines its scope by reference to a "heavy RUC vehicle (within the meaning
|
|
1227
1227
|
of the Road User Charges Act 2012)", and NZTA translates that into the 3500
|
|
@@ -1559,7 +1559,7 @@ series:
|
|
|
1559
1559
|
research_notes:
|
|
1560
1560
|
wikipedia_dependent_claims:
|
|
1561
1561
|
rule: >-
|
|
1562
|
-
|
|
1562
|
+
the plates spec § 4's Wikipedia row authorises fact extraction on four
|
|
1563
1563
|
conditions, the first of which is that every Wikipedia-derived fact is
|
|
1564
1564
|
tagged. Here is the complete enumeration for New Zealand, so that a future
|
|
1565
1565
|
decision to revisit the override can find every one of them in a single
|
|
@@ -1611,7 +1611,7 @@ research_notes:
|
|
|
1611
1611
|
NEW ZEALAND IS A VEHICLESDB REGISTRY SOURCE, AND THAT MAKES IT A CORPUS
|
|
1612
1612
|
CANDIDATE. NZTA publishes Motor Vehicle Register extracts and a
|
|
1613
1613
|
registrations dashboard as open data; where a licensed extract carries
|
|
1614
|
-
plate strings, the
|
|
1614
|
+
plate strings, the plates spec § 5.2 corpus test applies exactly as it does
|
|
1615
1615
|
to the Dutch kenteken set — the CURRENT series' regexes should jointly
|
|
1616
1616
|
match ≥ 99.9% of current New Zealand plates. The joint expression to test
|
|
1617
1617
|
is nz-standard-2001 ∪ nz-standard-1986 ∪ nz-standard-1964 for cars,
|
data/data/plates/pl.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# plates/pl.yml — Poland (
|
|
1
|
+
# plates/pl.yml — Poland (the plates spec gate L1, wave 2).
|
|
2
2
|
#
|
|
3
3
|
# EVERY format, colour, dimension and class claim here is read from a Polish
|
|
4
4
|
# primary instrument fetched in this pass through the Sejm's ELI API
|
|
@@ -198,7 +198,7 @@ common:
|
|
|
198
198
|
pkt 2.12's rule that layout follows Rysunki 9-25, with the substitute
|
|
199
199
|
rectangles of Rysunek 27 used for the digit 1 and the letters I, J, L and T.
|
|
200
200
|
licence: >-
|
|
201
|
-
|
|
201
|
+
the plates spec §6 applies unchanged: the render layer derives glyphs from the
|
|
202
202
|
statutory drawing, never from a third-party TTF. Whether Poland has a
|
|
203
203
|
German-style §5 UrhG public-domain rule for designs published inside
|
|
204
204
|
statutory instruments was NOT researched in this pass — recorded gap, and
|
|
@@ -240,7 +240,7 @@ common:
|
|
|
240
240
|
it OFF moped plates and temporary plates.
|
|
241
241
|
rendered: placeholder
|
|
242
242
|
render_note: >-
|
|
243
|
-
|
|
243
|
+
the plates spec §3 placeholder rule applies. The eagle is a state emblem under
|
|
244
244
|
the 1980 ustawa o godle and its licensing posture was not researched here;
|
|
245
245
|
the render layer draws a neutral placeholder in the slot.
|
|
246
246
|
source: "https://api.sejm.gov.pl/eli/acts/DU/2024/1709/text/O/D20241709.pdf # § 28 ust. 4 pkt 1 and ust. 6; załącznik nr 12 pkt 2.6 lit. b. Accessed 2026-08-02"
|
|
@@ -830,7 +830,7 @@ series:
|
|
|
830
830
|
from the bottom, with a two-letter prefix 105 mm from the left and
|
|
831
831
|
66.5 mm from the bottom. The sticker moves to a different ROW of the
|
|
832
832
|
two-row plate according to how long the prefix is — the same pressure
|
|
833
|
-
|
|
833
|
+
the plates spec §2.2 records for Japan, and a `format.fields` case if the
|
|
834
834
|
render bundle ever needs it.
|
|
835
835
|
region_encoding: "plates/_decode/pl-powiats.yml"
|
|
836
836
|
sources:
|