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
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
# plates/ca-nb.yml — New Brunswick, Canada (PRD-PLATES gate L2/L3, Canada east wave).
|
|
2
|
+
#
|
|
3
|
+
# NEW BRUNSWICK PUTS THE PLATE'S CONTENT IN THE ACT, WHICH ONTARIO AND
|
|
4
|
+
# NEWFOUNDLAND AND LABRADOR DO NOT. Motor Vehicle Act s. 29(2), verbatim: "Every
|
|
5
|
+
# registration plate shall have displayed upon it the registration number
|
|
6
|
+
# assigned to the vehicle for which it is issued, THE NAME OF THE PROVINCE, WHICH
|
|
7
|
+
# MAY BE ABBREVIATED, THE NUMBER OF THE YEAR FOR WHICH IT IS ISSUED, and such
|
|
8
|
+
# other information as the Minister may by order require." A statutory content
|
|
9
|
+
# rule with three mandatory elements — and the third of them, the year, is a
|
|
10
|
+
# legacy of the annual-plate era that the modern permanent plate satisfies through
|
|
11
|
+
# the s. 31 validation sticker rather than by embossing a year.
|
|
12
|
+
#
|
|
13
|
+
# FOUR STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
14
|
+
#
|
|
15
|
+
# 1. NEW BRUNSWICK BECAME A ONE-PLATE PROVINCE BY STATUTE IN 2019, AND THE
|
|
16
|
+
# AMENDMENT IS DATEABLE. MVA s. 29(1), as it now reads: "On registering a
|
|
17
|
+
# vehicle, the Registrar shall issue to the owner (a) ONE registration plate
|
|
18
|
+
# (i) for a motorcycle, an antique vehicle, a trailer or a semi-trailer, and
|
|
19
|
+
# (ii) for a vehicle that has a gross mass of less than 4 500 kg, and (b) TWO
|
|
20
|
+
# registration plates for a vehicle that has a gross mass of 4 500 kg or more".
|
|
21
|
+
# The section carries the amendment history "1955, c.13, s.20; 1977, c.M-11.1,
|
|
22
|
+
# s.17; 2009, c.4, s.1; 2019, c.6, s.5", and s. 30 — the attachment rule — was
|
|
23
|
+
# substituted by the same 2019 statute. The secondary record dates the front
|
|
24
|
+
# plate's abolition to 15 July 2019; the STATUTE independently shows a 2019
|
|
25
|
+
# amendment to the very subsection that would have to change, which is a rare
|
|
26
|
+
# case of a secondary date being corroborated by an instrument's own history
|
|
27
|
+
# line rather than merely repeated.
|
|
28
|
+
#
|
|
29
|
+
# 2. THE LEGIBILITY TEST IS A DISTANCE IN THE ACT. s. 29(3), verbatim: "Such
|
|
30
|
+
# registration plate and the required letters and numerals thereon, except the
|
|
31
|
+
# year number for which issued, shall be of sufficient size to be plainly
|
|
32
|
+
# readable from a distance of THIRTY METRES during daylight." A statutory
|
|
33
|
+
# legibility distance, with the year number expressly carved out of it.
|
|
34
|
+
#
|
|
35
|
+
# 3. THE PLATE IS THE CROWN'S AND THE FIRST LETTER IS A CLASS CODE. s. 29(4):
|
|
36
|
+
# "Registration plates issued to any person under this section shall remain at
|
|
37
|
+
# all times the property of the Crown." Separately — and this is the parse-
|
|
38
|
+
# relevant fact — New Brunswick reserves FIRST LETTERS by class: C for
|
|
39
|
+
# commercial, D for dealer, F for farm, H for taxi, L for truck, T for trailer,
|
|
40
|
+
# A for antique. Those reservations are the en.wikipedia article's, are tagged
|
|
41
|
+
# `secondary-wikipedia`, and are the closest thing New Brunswick has to Québec's
|
|
42
|
+
# statutory prefix table.
|
|
43
|
+
#
|
|
44
|
+
# 4. NO NEW BRUNSWICK INSTRUMENT LOCATED IN THIS PASS STATES A COLOUR, A DIMENSION
|
|
45
|
+
# OR A SERIAL GRAMMAR. s. 29(2) delegates everything beyond the three mandatory
|
|
46
|
+
# elements to ministerial order, and no such order was located. General
|
|
47
|
+
# Regulation 83-42 under the Act was NOT fetched (see `instrument.fetch_note`)
|
|
48
|
+
# and is the first place a verifier should look.
|
|
49
|
+
#
|
|
50
|
+
# SEPARATOR NOTE (PRD-PLATES §2.6): a New Brunswick plate prints a gap between
|
|
51
|
+
# groups, not a glyph. Every `pattern` spells the emitted space and every regex
|
|
52
|
+
# accepts it as optional.
|
|
53
|
+
jurisdiction: ca-nb
|
|
54
|
+
authority:
|
|
55
|
+
name: Motor Vehicle Branch, Department of Justice and Public Safety (New Brunswick); registration transacted through Service New Brunswick
|
|
56
|
+
url: "https://laws.gnb.ca/en/showfulldoc/cs/M-17"
|
|
57
|
+
url_note: "the Act itself is the authority citation because no New Brunswick agency plate page could be reached — laws.gnb.ca, www2.gnb.ca and www1.gnb.ca all returned HTTP 403 to every attempt on 2026-08-02 (see instrument.fetch_note)"
|
|
58
|
+
binding: vehicle
|
|
59
|
+
binding_note: >-
|
|
60
|
+
MVA s. 29(2) assigns the registration number "to the VEHICLE for which it is
|
|
61
|
+
issued" — vehicle-bound, and the opposite of the Ontario and Nova Scotia
|
|
62
|
+
owner-bound model in plates/ca-on.yml and plates/ca-ns.yml. s. 29(4) still makes
|
|
63
|
+
the physical plate Crown property. s. 32(1)(b) contemplates surrendering the
|
|
64
|
+
plate of a vehicle properly registered in another province as the price of a
|
|
65
|
+
free reciprocal New Brunswick registration.
|
|
66
|
+
instrument:
|
|
67
|
+
statute: "Motor Vehicle Act, R.S.N.B. 1973, c. M-17 — ss. 29 (issuance and content of registration plates), 30 (attachment), 31 (validation stickers), 32 (reciprocal arrangements), 33 (term and expiry), 35(2) (special-plate fees)"
|
|
68
|
+
currency: "the consolidation read is marked 'Current to 1 January 2024'"
|
|
69
|
+
key_amendments:
|
|
70
|
+
- "2019, c. 6, ss. 4-9 — re-headed and substituted ss. 29, 30 and 31; this is the amendment that moved New Brunswick to a single rear plate for vehicles under 4 500 kg"
|
|
71
|
+
- "2025, c. 6, s. 1 — most recent amendment to s. 30 (attachment)"
|
|
72
|
+
- "2009, c. 4, ss. 1-2 — previous substitution of ss. 29 and 31"
|
|
73
|
+
regulations_not_read:
|
|
74
|
+
- "N.B. Reg. 83-42 (General) — the principal regulation under the Act, 21 regulations deep in the Act's own regulation table. NOT FETCHED (gnb.ca 403). Any New Brunswick plate colour, dimension or serial rule that exists in delegated legislation is most likely here."
|
|
75
|
+
fetch_note: >-
|
|
76
|
+
EVERY gnb.ca HOST REFUSED THIS RESEARCH SESSION. laws.gnb.ca returned HTTP 403
|
|
77
|
+
to curl and to WebFetch, in English and in French, over HTTP and HTTPS;
|
|
78
|
+
www2.gnb.ca and www1.gnb.ca did the same. The consolidated Motor Vehicle Act
|
|
79
|
+
quoted throughout this file was therefore read through the Internet Archive's
|
|
80
|
+
copy (snapshot 20251201033750). Recorded so a verifier knows every New
|
|
81
|
+
Brunswick quotation here came through an archive, and so that N.B. Reg. 83-42
|
|
82
|
+
is flagged as unread rather than silently absent.
|
|
83
|
+
sources:
|
|
84
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # Motor Vehicle Act consolidation current to 1 January 2024, read 2026-08-02 — ss. 29(1)-(4), 30(1)-(2), 31(1)-(3), 32, 33 quoted in this file"
|
|
85
|
+
- "https://laws.gnb.ca/en/showfulldoc/cs/M-17 # the official consolidation the archive copy is of; HTTP 403 from this location, see fetch_note"
|
|
86
|
+
licence: >-
|
|
87
|
+
The Motor Vehicle Act is an EDICT OF GOVERNMENT and its text is
|
|
88
|
+
uncopyrightable (PRD-PLATES §4). Every verbatim quotation in this file is of
|
|
89
|
+
statutory text.
|
|
90
|
+
|
|
91
|
+
artwork_risk:
|
|
92
|
+
posture: unresearched
|
|
93
|
+
basis: >-
|
|
94
|
+
No New Brunswick copyright statement could be read, because no gnb.ca page
|
|
95
|
+
could be reached. The province's posture on plate ARTWORK is therefore
|
|
96
|
+
genuinely unknown rather than assumed favourable or adverse, and is recorded
|
|
97
|
+
as `unresearched` per PRD-PLATES §7.1's vocabulary.
|
|
98
|
+
emblem_rule: >-
|
|
99
|
+
PRD-PLATES §3 placeholder default applies with extra force here, since nothing
|
|
100
|
+
is known. The provincial wordmark (the red galley device with "New" /
|
|
101
|
+
"Nouveau" / "Brunswick" / "CANADA") is rendered `placeholder`; it is a
|
|
102
|
+
government wordmark and is likely to carry trade-mark protection independent
|
|
103
|
+
of copyright.
|
|
104
|
+
|
|
105
|
+
common:
|
|
106
|
+
statutory_content:
|
|
107
|
+
text: >-
|
|
108
|
+
MVA s. 29(2), verbatim: "Every registration plate shall have displayed upon
|
|
109
|
+
it the registration number assigned to the vehicle for which it is issued,
|
|
110
|
+
the name of the Province, which may be abbreviated, the number of the year
|
|
111
|
+
for which it is issued, and such other information as the Minister may by
|
|
112
|
+
order require."
|
|
113
|
+
consequence: >-
|
|
114
|
+
Three mandatory elements — number, province name, year — and an open
|
|
115
|
+
ministerial residue. The YEAR element is satisfied in practice by the s. 31
|
|
116
|
+
validation sticker rather than by an embossed year; s. 31(1) lets the
|
|
117
|
+
Minister authorise "a sticker or stickers instead of a registration plate or
|
|
118
|
+
plates", and s. 29(3) expressly excludes "the year number for which issued"
|
|
119
|
+
from the thirty-metre legibility test, which only makes sense if the year is
|
|
120
|
+
carried by something smaller than the serial.
|
|
121
|
+
source: "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(2),(3); s. 31(1),(1.1),(2)"
|
|
122
|
+
display:
|
|
123
|
+
text: >-
|
|
124
|
+
MVA s. 30(1), verbatim: "A registration plate issued under paragraph 29(1)(a)
|
|
125
|
+
shall be attached to the vehicle in the REAR and registration plates issued
|
|
126
|
+
under paragraph 29(1)(b) shall be attached to the vehicle, one in the front
|
|
127
|
+
and the other in the rear." s. 30(2): a plate shall at all times "(a) be
|
|
128
|
+
securely fastened to the vehicle for which it is issued so as to prevent the
|
|
129
|
+
plate from swinging, (b) be fastened in a horizontal position at a height of
|
|
130
|
+
at least 30 cm from the ground measuring from the bottom of the plate, (c) be
|
|
131
|
+
in a place and position so that the plate is clearly visible, and (d) be
|
|
132
|
+
maintained free from foreign materials and in a condition so that the plate is
|
|
133
|
+
clearly legible to a person on the highway in front or in rear of the
|
|
134
|
+
vehicle."
|
|
135
|
+
note: "30 cm is the same minimum height Nova Scotia (300 mm), Prince Edward Island (300 mm) and Newfoundland and Labrador (30 centimetres) enact. Four Atlantic statutes, one figure."
|
|
136
|
+
source: "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 30(1),(2), substituted by 2019, c. 6, ss. 6-7 and amended by 2025, c. 6, s. 1"
|
|
137
|
+
plate_count:
|
|
138
|
+
text: >-
|
|
139
|
+
MVA s. 29(1), verbatim: "On registering a vehicle, the Registrar shall issue
|
|
140
|
+
to the owner (a) one registration plate (i) for a motorcycle, an antique
|
|
141
|
+
vehicle, a trailer or a semi-trailer, and (ii) for a vehicle that has a gross
|
|
142
|
+
mass of less than 4 500 kg, and (b) two registration plates for a vehicle that
|
|
143
|
+
has a gross mass of 4 500 kg or more, excluding a vehicle under subparagraph
|
|
144
|
+
(a)(i), but the Minister may order that only one registration plate shall be
|
|
145
|
+
issued for a vehicle for the registration year or years specified in the
|
|
146
|
+
order."
|
|
147
|
+
source: "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1), substituted by 2019, c. 6, s. 5"
|
|
148
|
+
expiry:
|
|
149
|
+
text: >-
|
|
150
|
+
MVA s. 33(1), verbatim: "Unless the regulations provide otherwise, every
|
|
151
|
+
vehicle registration under this Act, other than the registration of a
|
|
152
|
+
commercial vehicle, and every registration certificate and registration plate
|
|
153
|
+
issued under this Act for such vehicle, shall expire at midnight on the
|
|
154
|
+
THIRTY-FIRST DAY OF MARCH of each year."
|
|
155
|
+
note: "A fixed provincial expiry date rather than a staggered birthday system — the opposite of Ontario and Québec. Commercial vehicles are carved out to regulation by s. 33(2)(b)."
|
|
156
|
+
source: "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 33(1),(2)"
|
|
157
|
+
antique_definition:
|
|
158
|
+
text: 'MVA s. 1, verbatim: "\"antique vehicle\" means a motor vehicle that is at least twenty-five years old and has been restored to original condition; (ancien modèle)"'
|
|
159
|
+
note: >-
|
|
160
|
+
TWENTY-FIVE YEARS, not Ontario's thirty (HTA s. 7(1.1)) — and note the
|
|
161
|
+
stronger second limb: New Brunswick requires the vehicle to have been RESTORED
|
|
162
|
+
TO ORIGINAL CONDITION, where Ontario asks only that it be "substantially
|
|
163
|
+
unchanged or unmodified". Two Canadian provinces, two statutory antique tests,
|
|
164
|
+
neither reconcilable with the other.
|
|
165
|
+
source: "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 1 definitions"
|
|
166
|
+
class_first_letters:
|
|
167
|
+
note: >-
|
|
168
|
+
TAGGED SECONDARY, and the nearest New Brunswick equivalent of Québec's
|
|
169
|
+
statutory prefix table. The en.wikipedia article states that the following
|
|
170
|
+
first letters are reserved by class and therefore do not appear in the
|
|
171
|
+
ordinary passenger run: C (commercial), D (dealer), F (farm), H (taxi),
|
|
172
|
+
L (truck), T (trailer), A (antique). No New Brunswick instrument located in
|
|
173
|
+
this pass states any of it. The reservations are encoded in the passenger
|
|
174
|
+
series' `regex_strict` and nowhere else.
|
|
175
|
+
reserved: { C: commercial, D: dealer, F: farm, H: taxi, L: truck, T: trailer, A: antique }
|
|
176
|
+
source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY (PRD-PLATES §4, owner override 2026-08-02), read 2026-08-02: the per-class serial tables and their first-letter reservations"
|
|
177
|
+
dimensions:
|
|
178
|
+
note: >-
|
|
179
|
+
NO NEW BRUNSWICK INSTRUMENT PRESCRIBES A PLATE SIZE. s. 29(3) states a
|
|
180
|
+
LEGIBILITY DISTANCE (thirty metres in daylight) instead, which is a
|
|
181
|
+
functional standard rather than a dimensional one — an unusual and rather
|
|
182
|
+
elegant drafting choice, and the only size-adjacent rule in the Act. The
|
|
183
|
+
6 in x 12 in North American convention is recorded on the series below as
|
|
184
|
+
`plate_basis: convention`.
|
|
185
|
+
|
|
186
|
+
classes_not_modelled:
|
|
187
|
+
seasonal:
|
|
188
|
+
exists: true
|
|
189
|
+
mechanism: "The en.wikipedia article carries a 'Seasonal plates' section for New Brunswick, and MVA s. 35(2) empowers regulations 'fixing or altering fees in relation to the issuance or holding of SPECIAL PLATES', with the proceeds capable of going to a special purpose account or trust — the statutory hook for New Brunswick's specialty programmes generally."
|
|
190
|
+
why_not_modelled: "No serial grammar, colour or period was captured for the seasonal series in this pass, and no instrument describes it. Recorded as a gap."
|
|
191
|
+
sources:
|
|
192
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 35(2): the special-plate fee power"
|
|
193
|
+
firefighter_and_specialty:
|
|
194
|
+
exists: true
|
|
195
|
+
mechanism: "The article carries 'Firefighter plates' and a 'Specialty plates' section for New Brunswick; MVA s. 35(2) is again the statutory hook."
|
|
196
|
+
why_not_modelled: "PRD-PLATES §2.5 excludes the specialty-design catalogue from v1, and no primary describes any of these. Recorded as a gap."
|
|
197
|
+
sources:
|
|
198
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # the specialty and firefighter sections, read 2026-08-02"
|
|
199
|
+
prorated:
|
|
200
|
+
exists: true
|
|
201
|
+
mechanism: "The article carries a 'Prorated plates' section — New Brunswick participates in the International Registration Plan as every Canadian province does."
|
|
202
|
+
why_not_modelled: "IRP plates are the commercial series under an apportionment regime; no distinct New Brunswick grammar was located. Contrast plates/ca-qc.yml, where the PRP vignette is prescribed by Règlement art. 112.1."
|
|
203
|
+
|
|
204
|
+
series:
|
|
205
|
+
|
|
206
|
+
# =========================================================================
|
|
207
|
+
# THE CURRENT PASSENGER SERIES — three letters, three numerals, plain base.
|
|
208
|
+
# =========================================================================
|
|
209
|
+
- id: ca-nb-standard-2011
|
|
210
|
+
class: standard
|
|
211
|
+
categories: [car, van, truck]
|
|
212
|
+
period: { start: 2011 }
|
|
213
|
+
period_evidence: secondary-wikipedia
|
|
214
|
+
matching: strict
|
|
215
|
+
format:
|
|
216
|
+
pattern: "LLL 999"
|
|
217
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
218
|
+
regex_strict: '\A[BEGIJKMNOPQRSUVWXYZ][A-Z]{2} ?\d{3}\z'
|
|
219
|
+
charset:
|
|
220
|
+
reserved_first_letters: [A, C, D, F, H, L, T]
|
|
221
|
+
notes: >-
|
|
222
|
+
TAGGED SECONDARY — see `common.class_first_letters`. `regex_strict`
|
|
223
|
+
removes the seven reserved class letters from the FIRST position only and
|
|
224
|
+
leaves positions two and three unconstrained, because the article states
|
|
225
|
+
no exclusion for them. That is a deliberately partial strict twin, and
|
|
226
|
+
saying so is the point: a strict twin narrower than the truth would be
|
|
227
|
+
worse than none.
|
|
228
|
+
progression: "the article's issuance record runs JEA 000 upward through the J and K blocks; there is NO date and NO region signal in a New Brunswick serial"
|
|
229
|
+
design:
|
|
230
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
231
|
+
plate_note: "NOT a New Brunswick legal claim — the Act states a legibility distance, not a size. See `common.dimensions`."
|
|
232
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
233
|
+
foreground: "#C8102E"
|
|
234
|
+
colour_note: >-
|
|
235
|
+
EMBOSSED RED ON REFLECTIVE WHITE, which makes New Brunswick the only
|
|
236
|
+
red-serial standard plate in the Canada east wave and therefore trivially
|
|
237
|
+
separable from Nova Scotia and Newfoundland and Labrador on sight, though
|
|
238
|
+
NOT from a string — all three provinces run ABC 123. No instrument states
|
|
239
|
+
either colour; both are observed and the claim itself is the article's.
|
|
240
|
+
legend_top: "New Brunswick / Nouveau-Brunswick provincial wordmark, screened, centred above the serial"
|
|
241
|
+
legend_bottom_options: []
|
|
242
|
+
slogan_note: "the 2011 base carries NO slogan. Its immediate predecessor carried the bilingual 'Be... in this place ᐧ Être... ici on le peut'; dropping it is the visible difference between the two series."
|
|
243
|
+
emblem: { present: true, rendered: placeholder, description: "the provincial wordmark: a red galley graphic with 'New' to the left, 'Nouveau' to the right and 'Brunswick' and 'CANADA' below" }
|
|
244
|
+
band: { side: none }
|
|
245
|
+
rear_differs: false
|
|
246
|
+
display: "ONE plate, REAR, for a vehicle under 4 500 kg (MVA ss. 29(1)(a)(ii), 30(1)) — front plates were abolished by 2019, c. 6, s. 5; see notes"
|
|
247
|
+
sources:
|
|
248
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1)(a)(ii) (one plate under 4 500 kg), s. 29(2) (the statutory content rule), s. 29(3) (thirty-metre legibility), s. 29(4) (Crown property), s. 30(1)-(2) (rear attachment, 30 cm, legibility), s. 33(1) (31 March expiry)"
|
|
249
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the 2011 base, the ABC 123 format, the removal of the slogan, the issuance range from JEA 000, the red-on-white colours, and the 15 July 2019 abolition of front plates (which the article footnotes to CBC News, 18 June 2019)"
|
|
250
|
+
notes: >-
|
|
251
|
+
THE CURRENT NEW BRUNSWICK PLATE. THE DISPLAY RULE IS PRIMARY AND THE FORMAT
|
|
252
|
+
IS NOT — the split is worth stating because the display rule is the more
|
|
253
|
+
unusual fact. New Brunswick abolished the front plate in 2019, and this file
|
|
254
|
+
does not take that from the newspaper the article cites: MVA s. 29(1) as
|
|
255
|
+
consolidated puts a vehicle under 4 500 kg squarely in the one-plate limb, and
|
|
256
|
+
the section's own amendment history line ends "2019, c. 6, s. 5", with s. 30
|
|
257
|
+
substituted by ss. 6-7 of the same statute. The instrument corroborates the
|
|
258
|
+
secondary's date to the year. THE FORMAT AND THE 2011 BASE ARE THE ARTICLE'S,
|
|
259
|
+
unfootnoted, hence `period_evidence: secondary-wikipedia`. PARSE CAUTION: New
|
|
260
|
+
Brunswick, Nova Scotia and Newfoundland and Labrador all currently issue
|
|
261
|
+
ABC 123, so a bare three-letter three-numeral string is not diagnostic of any
|
|
262
|
+
of them; the province is recoverable only from the plate IMAGE (red serial and
|
|
263
|
+
the galley wordmark here, blue serial and the Bluenose in Nova Scotia, blue
|
|
264
|
+
serial and the pitcher plant in Newfoundland and Labrador).
|
|
265
|
+
|
|
266
|
+
- id: ca-nb-standard-2009
|
|
267
|
+
class: standard
|
|
268
|
+
categories: [car, van, truck]
|
|
269
|
+
period: { start: 2009, end: 2011 }
|
|
270
|
+
period_evidence: secondary-wikipedia
|
|
271
|
+
matching: strict
|
|
272
|
+
format:
|
|
273
|
+
pattern: "LLL 999"
|
|
274
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
275
|
+
regex_strict: '\A[BEGIJKMNOPQRSUVWXYZ][A-Z]{2} ?\d{3}\z'
|
|
276
|
+
charset: { reserved_first_letters: [A, C, D, F, H, L, T], notes: "as ca-nb-standard-2011" }
|
|
277
|
+
design:
|
|
278
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
279
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
280
|
+
foreground: "#C8102E"
|
|
281
|
+
legend_bottom_options: ["Be... in this place ᐧ Être... ici on le peut"]
|
|
282
|
+
slogan_note: >-
|
|
283
|
+
THE ONLY BILINGUAL SLOGAN IN THE CANADA EAST WAVE, and it is bilingual in a
|
|
284
|
+
way no other plate here is: English and French SIDE BY SIDE on one plate,
|
|
285
|
+
separated by a raised dot, rather than English and French plates issued as
|
|
286
|
+
alternatives (Ontario's YOURS TO DISCOVER / TANT À DÉCOUVRIR, Prince Edward
|
|
287
|
+
Island's PRINCE EDWARD ISLAND / ÎLE-DU-PRINCE-ÉDOUARD). New Brunswick is
|
|
288
|
+
Canada's only constitutionally bilingual province and its plate said so.
|
|
289
|
+
band: { side: top, color: "#FFC72C", note: "curved gold and sky-blue bands across the top of the plate, carrying the provincial wordmark. Observed, per the article; no instrument describes it." }
|
|
290
|
+
emblem: { present: true, rendered: placeholder, description: "the provincial wordmark on the bands: red galley with small blue waves" }
|
|
291
|
+
rear_differs: false
|
|
292
|
+
display: "TWO plates, front and rear — this series predates the 2019 abolition of the front plate, so a 2009-2011 New Brunswick vehicle was plated fore and aft when new"
|
|
293
|
+
sources:
|
|
294
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the 2009-2011 banded base with the bilingual slogan, format ABC 123, issuance GXA 000 to GZZ 999 and JAA 000 to JDZ 999"
|
|
295
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1) BEFORE the 2019 substitution is not reproduced in the consolidation, but the section's history line ('2009, c.4, s.1; 2019, c.6, s.5') establishes that the plate-count rule was substituted twice in the relevant window — which is why this series' display note is stated as a consequence of the amendment rather than quoted"
|
|
296
|
+
notes: >-
|
|
297
|
+
ONE SERIES BACK, and cut on DESIGN alone: the format is identical to
|
|
298
|
+
ca-nb-standard-2011 and only the base changed when the slogan and the gold and
|
|
299
|
+
sky-blue bands were dropped. PRD-PLATES §2.3 makes that its own series and
|
|
300
|
+
also means no parse API can tell the two apart from a string. Both boundaries
|
|
301
|
+
are the article's, unfootnoted. The display note is an INFERENCE from the
|
|
302
|
+
dated amendment history and is labelled as one.
|
|
303
|
+
|
|
304
|
+
# =========================================================================
|
|
305
|
+
# COMMERCIAL — first letter C, reserved.
|
|
306
|
+
# =========================================================================
|
|
307
|
+
- id: ca-nb-commercial-2011
|
|
308
|
+
class: standard
|
|
309
|
+
categories: [truck, van]
|
|
310
|
+
period: { start: 2011 }
|
|
311
|
+
period_evidence: secondary-wikipedia
|
|
312
|
+
matching: strict
|
|
313
|
+
format:
|
|
314
|
+
pattern: "CLL 999"
|
|
315
|
+
regex: '\AC[A-Z]{2} ?\d{3}\z'
|
|
316
|
+
charset: { notes: "the literal C in position 1 is the class reservation; the two letters and three numerals that follow are the article's. NOTE that this shape is INSIDE the passenger shape LLL 999 — the class signal is the letter itself, which is why the passenger series' strict twin excludes C from position 1." }
|
|
317
|
+
progression: "CRA 001 upward per the article's issuance record"
|
|
318
|
+
design:
|
|
319
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
320
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
321
|
+
foreground: "#C8102E"
|
|
322
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
323
|
+
band: { side: none }
|
|
324
|
+
rear_differs: false
|
|
325
|
+
display: "ONE plate REAR under 4 500 kg; TWO plates, front and rear, at 4 500 kg or more (MVA ss. 29(1), 30(1)) — so the same New Brunswick commercial series appears in one-plate and two-plate form depending on mass, which is a genuine modelling wrinkle and is recorded rather than flattened"
|
|
326
|
+
sources:
|
|
327
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1)(b): two plates at 4 500 kg or more; s. 33(2)(b): commercial-vehicle registration periods are set by regulation rather than by the 31 March rule"
|
|
328
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the CAB 123 commercial format from 2011 and the C reservation"
|
|
329
|
+
notes: >-
|
|
330
|
+
`class: standard` because the vocabulary has no commercial member; the C
|
|
331
|
+
reservation and the category list carry the meaning. THE 4 500 KG HINGE IS
|
|
332
|
+
THE PRIMARY PART: the same commercial serial wears one plate or two according
|
|
333
|
+
to a statutory mass threshold, so plate COUNT is a mass signal in New
|
|
334
|
+
Brunswick in a way it is not in Ontario (always two) or Québec (always one).
|
|
335
|
+
|
|
336
|
+
# =========================================================================
|
|
337
|
+
# HEAVY TRUCK — first letter L.
|
|
338
|
+
# =========================================================================
|
|
339
|
+
- id: ca-nb-truck-2003
|
|
340
|
+
class: standard
|
|
341
|
+
categories: [truck, tractor]
|
|
342
|
+
period: { start: 2003 }
|
|
343
|
+
period_evidence: secondary-wikipedia
|
|
344
|
+
matching: strict
|
|
345
|
+
format:
|
|
346
|
+
pattern: '\L999999'
|
|
347
|
+
regex: '\AL\d{6}\z'
|
|
348
|
+
charset:
|
|
349
|
+
notes: >-
|
|
350
|
+
The literal L is the class reservation. NOTE THE PATTERN ESCAPE: `L` is
|
|
351
|
+
the human-pattern DSL's own token for "any letter", so a plate that PRINTS
|
|
352
|
+
an L writes `\L` (PRD-PLATES §2.2, owner ruling 2026-08-02) — the same
|
|
353
|
+
collision Québec's heavy-truck prefix causes in plates/ca-qc.yml, and for
|
|
354
|
+
the same reason: two provinces independently chose L for "lourd"/"large".
|
|
355
|
+
Written in single quotes so YAML does not eat the backslash.
|
|
356
|
+
design:
|
|
357
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
358
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
359
|
+
foreground: "#C8102E"
|
|
360
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
361
|
+
band: { side: none }
|
|
362
|
+
rear_differs: false
|
|
363
|
+
sources:
|
|
364
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the L123456 truck format, replacing L12-345 from 1991"
|
|
365
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1)(b): a truck at or above 4 500 kg carries two plates"
|
|
366
|
+
notes: >-
|
|
367
|
+
period.start 2003 is the article's boundary between the L12-345 and L123456
|
|
368
|
+
forms and is unfootnoted. Authored because the all-numeric six-digit body
|
|
369
|
+
after a fixed L is genuinely distinctive and because the two Canadian
|
|
370
|
+
provinces that reserve L for trucks (New Brunswick and Québec) produce
|
|
371
|
+
COLLIDING strings — L123456 is a valid shape in both — which a parse API must
|
|
372
|
+
be told rather than left to discover.
|
|
373
|
+
|
|
374
|
+
# =========================================================================
|
|
375
|
+
# MOTORCYCLE — three letters, two numerals, one plate.
|
|
376
|
+
# =========================================================================
|
|
377
|
+
- id: ca-nb-motorcycle-2009
|
|
378
|
+
class: motorcycle
|
|
379
|
+
categories: [motorcycle]
|
|
380
|
+
period: { start: 2009 }
|
|
381
|
+
period_evidence: secondary-wikipedia
|
|
382
|
+
matching: strict
|
|
383
|
+
format:
|
|
384
|
+
pattern: "LLL99"
|
|
385
|
+
regex: '\A[A-Z]{3} ?\d{2}\z'
|
|
386
|
+
charset: { notes: "three letters, two numerals, printed as one block; the article's issuance record runs into the Y and Z blocks, which suggests the run is nearing exhaustion" }
|
|
387
|
+
design:
|
|
388
|
+
plate_note: "reduced motorcycle size; no New Brunswick instrument states one and no measured figure was obtained. Deliberately absent rather than guessed."
|
|
389
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
390
|
+
foreground: "#C8102E"
|
|
391
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
392
|
+
band: { side: none }
|
|
393
|
+
rear_differs: false
|
|
394
|
+
display: "ONE plate, REAR — a motorcycle is in the one-plate limb at MVA s. 29(1)(a)(i) REGARDLESS OF MASS, which is a separate statutory route from the 4 500 kg rule and is why a motorcycle never carried a front plate even before 2019"
|
|
395
|
+
sources:
|
|
396
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1)(a)(i): one plate for a motorcycle, an antique vehicle, a trailer or a semi-trailer — a mass-independent limb"
|
|
397
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the ABC12 motorcycle format from 2009 and its issuance range"
|
|
398
|
+
notes: >-
|
|
399
|
+
THE ONE-PLATE LIMB IS PRIMARY AND IT IS THE INTERESTING PART: s. 29(1)(a)(i)
|
|
400
|
+
gives motorcycles, antique vehicles, trailers and semi-trailers a single plate
|
|
401
|
+
by CLASS, not by mass, so those four classes were unaffected by the 2019
|
|
402
|
+
change that abolished the front plate for everything under 4 500 kg. Format
|
|
403
|
+
and period are the article's.
|
|
404
|
+
|
|
405
|
+
# =========================================================================
|
|
406
|
+
# TRAILER — first letter T.
|
|
407
|
+
# =========================================================================
|
|
408
|
+
- id: ca-nb-trailer-2003
|
|
409
|
+
class: trailer
|
|
410
|
+
categories: [trailer, semitrailer]
|
|
411
|
+
period: { start: 2003 }
|
|
412
|
+
period_evidence: secondary-wikipedia
|
|
413
|
+
matching: strict
|
|
414
|
+
format:
|
|
415
|
+
pattern: "TLL 999"
|
|
416
|
+
regex: '\AT[A-Z]{2} ?\d{3}\z'
|
|
417
|
+
charset: { notes: "the literal T is the class reservation; the two letters and three numerals are the article's" }
|
|
418
|
+
design:
|
|
419
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
420
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
421
|
+
foreground: "#C8102E"
|
|
422
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
423
|
+
band: { side: none }
|
|
424
|
+
rear_differs: false
|
|
425
|
+
display: "ONE plate, REAR (MVA ss. 29(1)(a)(i), 30(1)) — a trailer and a semi-trailer are in the mass-independent one-plate limb"
|
|
426
|
+
sources:
|
|
427
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 29(1)(a)(i): one plate for a trailer or semi-trailer"
|
|
428
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the TAB 123 trailer format, replacing TA1-234"
|
|
429
|
+
notes: >-
|
|
430
|
+
The T reservation and the arrangement are the article's; the one-plate rule is
|
|
431
|
+
statutory. period.start 2003 is the article's boundary and is unfootnoted.
|
|
432
|
+
|
|
433
|
+
# =========================================================================
|
|
434
|
+
# ANTIQUE — the statutory 25-year class.
|
|
435
|
+
# =========================================================================
|
|
436
|
+
- id: ca-nb-antique-2003
|
|
437
|
+
class: historic
|
|
438
|
+
categories: [car, van, truck, motorcycle]
|
|
439
|
+
period: { start: 2003 }
|
|
440
|
+
period_evidence: secondary-wikipedia
|
|
441
|
+
matching: strict
|
|
442
|
+
format:
|
|
443
|
+
pattern: "LL9 999"
|
|
444
|
+
regex: '\A[A-Z]{2}\d ?\d{3}\z'
|
|
445
|
+
charset: { notes: "two letters, digit, three numerals; the article's issuance record runs AA1 001 upward, so the leading A is in practice the class reservation even though the arrangement is nominally two free letters" }
|
|
446
|
+
design:
|
|
447
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
448
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
449
|
+
foreground: "#C8102E"
|
|
450
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
451
|
+
band: { side: none }
|
|
452
|
+
rear_differs: false
|
|
453
|
+
display: "ONE plate, REAR (MVA ss. 29(1)(a)(i), 30(1))"
|
|
454
|
+
eligibility:
|
|
455
|
+
text: 'MVA s. 1, verbatim: "\"antique vehicle\" means a motor vehicle that is at least twenty-five years old and has been restored to original condition; (ancien modèle)"'
|
|
456
|
+
note: "See `common.antique_definition` for the comparison with Ontario's thirty-year, substantially-unmodified test. New Brunswick's is younger AND stricter — a lower age bar with a restoration requirement."
|
|
457
|
+
sources:
|
|
458
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 1 (the 25-year restored-to-original definition, verbatim above); s. 29(1)(a)(i) (one plate for an antique vehicle); s. 1 'fictitious registration plate' definition, whose carve-outs expressly contemplate an out-of-year plate on 'a motorcycle, an antique vehicle, a trailer, a semi-trailer or a vehicle that has a gross mass of less than 4 500 kg' fitted to the FRONT — the statutory residue of the abolished front plate"
|
|
459
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the AB1 234 antique format from 2003 and its issuance range"
|
|
460
|
+
notes: >-
|
|
461
|
+
AUTHORED FOR THE STATUTORY DEFINITION, which is the strongest fact about the
|
|
462
|
+
class and one of the few genuinely comparative facts in this wave: twenty-five
|
|
463
|
+
years and restored to original, against Ontario's thirty years and
|
|
464
|
+
substantially unmodified. THE HIDDEN GEM IS IN THE DEFINITIONS SECTION: New
|
|
465
|
+
Brunswick's definition of "fictitious registration plate" carves out "a
|
|
466
|
+
registration plate not furnished and issued for the current registration year
|
|
467
|
+
that is attached to the FRONT of a motorcycle, an antique vehicle, a trailer,
|
|
468
|
+
a semi-trailer or a vehicle that has a gross mass of less than 4 500 kg" —
|
|
469
|
+
i.e. after 2019 it is lawful to keep an expired plate on the front of your
|
|
470
|
+
car, and the legislature said so in a definition rather than in an operative
|
|
471
|
+
section. Format and period are the article's.
|
|
472
|
+
|
|
473
|
+
# =========================================================================
|
|
474
|
+
# DEALER — first letter D.
|
|
475
|
+
# =========================================================================
|
|
476
|
+
- id: ca-nb-dealer-2009
|
|
477
|
+
class: dealer
|
|
478
|
+
categories: [car, van, truck, motorcycle]
|
|
479
|
+
period: { start: 2009 }
|
|
480
|
+
period_evidence: secondary-wikipedia
|
|
481
|
+
matching: strict
|
|
482
|
+
format:
|
|
483
|
+
pattern: "D99 999"
|
|
484
|
+
regex: '\AD\d{2} ?\d{3}\z'
|
|
485
|
+
charset: { notes: "the literal D is the class reservation; five numerals follow. The article's issuance record reaches D21 547." }
|
|
486
|
+
design:
|
|
487
|
+
plate: { w: 12, h: 6, unit: in, plate_basis: convention }
|
|
488
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
489
|
+
foreground: "#C8102E"
|
|
490
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
491
|
+
band: { side: none }
|
|
492
|
+
rear_differs: false
|
|
493
|
+
binding: business
|
|
494
|
+
sources:
|
|
495
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the D12 345 dealer format from 2009, the D reservation and the issuance range"
|
|
496
|
+
- "https://web.archive.org/web/20251201033750/https://laws.gnb.ca/en/showfulldoc/cs/M-17/ # MVA s. 35(2): the special-plate fee power, the nearest statutory hook located for the dealer regime; the Act's plate sections do not describe dealer plates"
|
|
497
|
+
notes: >-
|
|
498
|
+
ENTIRELY SECONDARY, AND AUTHORED ANYWAY because the D-prefix-plus-five-numerals
|
|
499
|
+
shape is distinctive and because a dealer plate is a `binding: business` object
|
|
500
|
+
that a consumer must not read as a vehicle registration. No New Brunswick
|
|
501
|
+
instrument located in this pass describes a dealer plate — N.B. Reg. 83-42 is
|
|
502
|
+
the likely home of the regime and was unreachable (see
|
|
503
|
+
`instrument.fetch_note`). A verifier should re-pin this from that regulation
|
|
504
|
+
before the file is applied.
|
|
505
|
+
|
|
506
|
+
# =========================================================================
|
|
507
|
+
# OFF-ROAD / ATV.
|
|
508
|
+
# =========================================================================
|
|
509
|
+
- id: ca-nb-atv-2003
|
|
510
|
+
class: standard
|
|
511
|
+
categories: [atv]
|
|
512
|
+
period: { start: 2003 }
|
|
513
|
+
period_evidence: secondary-wikipedia
|
|
514
|
+
matching: strict
|
|
515
|
+
format:
|
|
516
|
+
pattern: "LL9 999"
|
|
517
|
+
regex: '\A[A-Z]{2}\d ?\d{3}\z'
|
|
518
|
+
charset: { notes: "same arrangement as the antique series — two letters, digit, three numerals — and therefore INDISTINGUISHABLE from it as a string. The article's ATV issuance record runs into the Y block while the antique run is in the A block, so in practice the first letter separates them; that is an allocation fact, not a grammar fact, and is not encoded." }
|
|
519
|
+
design:
|
|
520
|
+
plate_note: "no size located; deliberately absent"
|
|
521
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
522
|
+
foreground: "#C8102E"
|
|
523
|
+
emblem: { present: true, rendered: placeholder, description: "provincial wordmark" }
|
|
524
|
+
band: { side: none }
|
|
525
|
+
rear_differs: false
|
|
526
|
+
sources:
|
|
527
|
+
- "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Brunswick # TAGGED SECONDARY: the AB1-234 ATV format from 2003 (AB12345 from 1986) and the issuance range to YE6 025"
|
|
528
|
+
notes: >-
|
|
529
|
+
AUTHORED WITH ITS OWN COLLISION STATED: the New Brunswick ATV and antique
|
|
530
|
+
series share an arrangement, so a parse API given "AB1 234" must return BOTH
|
|
531
|
+
candidates and rank them by allocation block rather than by grammar. That is
|
|
532
|
+
exactly the situation `matching: strict` is for — each regex is at or inside
|
|
533
|
+
its own series' issuing grammar, and the ambiguity is real rather than an
|
|
534
|
+
artefact of over-broad regexes. `class: standard` because the vocabulary has
|
|
535
|
+
no off-road member. Off-road registration in New Brunswick sits under the
|
|
536
|
+
Off-Road Vehicle Act rather than the Motor Vehicle Act, which was NOT consulted
|
|
537
|
+
in this pass; recorded gap.
|