vehicles 0.4.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +321 -0
  4. data/README.md +88 -15
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +10 -0
  7. data/data/plates/_decode/at-districts.yml +287 -0
  8. data/data/plates/_decode/ch-cantons.yml +110 -0
  9. data/data/plates/_decode/cn-issuing-offices.yml +463 -0
  10. data/data/plates/_decode/cn-provinces.yml +614 -0
  11. data/data/plates/_decode/cz-kraj.yml +159 -0
  12. data/data/plates/_decode/dk-serial-blocks.yml +327 -0
  13. data/data/plates/_decode/es-provinces.yml +116 -0
  14. data/data/plates/_decode/fr-departements.yml +191 -0
  15. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  16. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  17. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  18. data/data/plates/_decode/hr-cities.yml +315 -0
  19. data/data/plates/_decode/ie-counties.yml +227 -0
  20. data/data/plates/_decode/in-state-codes.yml +169 -0
  21. data/data/plates/_decode/is-districts-1938.yml +116 -0
  22. data/data/plates/_decode/it-provinces.yml +348 -0
  23. data/data/plates/_decode/jp-office-marks.yml +960 -0
  24. data/data/plates/_decode/jp-use-marks.yml +205 -0
  25. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  26. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  27. data/data/plates/_decode/lu-series-order.yml +638 -0
  28. data/data/plates/_decode/mx-entity-series.yml +380 -0
  29. data/data/plates/_decode/my-index-marks.yml +271 -0
  30. data/data/plates/_decode/no-counties-1913.yml +148 -0
  31. data/data/plates/_decode/no-districts.yml +901 -0
  32. data/data/plates/_decode/pl-powiats.yml +567 -0
  33. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  34. data/data/plates/_decode/ro-counties.yml +213 -0
  35. data/data/plates/_decode/se-diplomatic.yml +220 -0
  36. data/data/plates/_decode/si-regions.yml +123 -0
  37. data/data/plates/_decode/sk-districts.yml +314 -0
  38. data/data/plates/_decode/th-registration-elements.yml +208 -0
  39. data/data/plates/_decode/ua-regions.yml +393 -0
  40. data/data/plates/_decode/za-licence-marks.yml +215 -0
  41. data/data/plates/_meta/classes.yml +26 -0
  42. data/data/plates/_meta/separators.yml +102 -0
  43. data/data/plates/ad.yml +961 -0
  44. data/data/plates/ar.yml +762 -0
  45. data/data/plates/at.yml +1424 -0
  46. data/data/plates/au-act.yml +472 -0
  47. data/data/plates/au-nsw.yml +282 -0
  48. data/data/plates/au-nt.yml +431 -0
  49. data/data/plates/au-qld.yml +272 -0
  50. data/data/plates/au-sa.yml +248 -0
  51. data/data/plates/au-tas.yml +302 -0
  52. data/data/plates/au-vic.yml +215 -0
  53. data/data/plates/au-wa.yml +309 -0
  54. data/data/plates/be.yml +1840 -0
  55. data/data/plates/br.yml +1152 -0
  56. data/data/plates/ca-ab.yml +430 -0
  57. data/data/plates/ca-bc.yml +697 -0
  58. data/data/plates/ca-mb.yml +499 -0
  59. data/data/plates/ca-nb.yml +537 -0
  60. data/data/plates/ca-nl.yml +743 -0
  61. data/data/plates/ca-ns.yml +808 -0
  62. data/data/plates/ca-nt.yml +610 -0
  63. data/data/plates/ca-nu.yml +280 -0
  64. data/data/plates/ca-on.yml +881 -0
  65. data/data/plates/ca-pe.yml +592 -0
  66. data/data/plates/ca-qc.yml +1036 -0
  67. data/data/plates/ca-sk.yml +256 -0
  68. data/data/plates/ca-yt.yml +656 -0
  69. data/data/plates/ch.yml +1273 -0
  70. data/data/plates/cn.yml +1431 -0
  71. data/data/plates/cy.yml +688 -0
  72. data/data/plates/cz.yml +1179 -0
  73. data/data/plates/de.yml +1107 -0
  74. data/data/plates/dk.yml +1647 -0
  75. data/data/plates/ee.yml +1275 -0
  76. data/data/plates/es.yml +888 -0
  77. data/data/plates/fi.yml +1271 -0
  78. data/data/plates/fr.yml +1265 -0
  79. data/data/plates/gb.yml +1188 -0
  80. data/data/plates/gr.yml +721 -0
  81. data/data/plates/hr.yml +860 -0
  82. data/data/plates/hu.yml +959 -0
  83. data/data/plates/ie.yml +775 -0
  84. data/data/plates/in.yml +1172 -0
  85. data/data/plates/is.yml +667 -0
  86. data/data/plates/it.yml +1317 -0
  87. data/data/plates/jp.yml +3650 -0
  88. data/data/plates/kr.yml +1375 -0
  89. data/data/plates/li.yml +1010 -0
  90. data/data/plates/lt.yml +879 -0
  91. data/data/plates/lu.yml +842 -0
  92. data/data/plates/lv.yml +924 -0
  93. data/data/plates/mc.yml +1024 -0
  94. data/data/plates/mt.yml +854 -0
  95. data/data/plates/mx.yml +1372 -0
  96. data/data/plates/my.yml +685 -0
  97. data/data/plates/nl.yml +1016 -0
  98. data/data/plates/no.yml +1018 -0
  99. data/data/plates/nz.yml +1699 -0
  100. data/data/plates/pl.yml +1296 -0
  101. data/data/plates/pt.yml +847 -0
  102. data/data/plates/ro.yml +785 -0
  103. data/data/plates/se.yml +1091 -0
  104. data/data/plates/si.yml +1105 -0
  105. data/data/plates/sk.yml +1439 -0
  106. data/data/plates/sm.yml +1119 -0
  107. data/data/plates/th.yml +1150 -0
  108. data/data/plates/ua.yml +1672 -0
  109. data/data/plates/us-ak.yml +763 -0
  110. data/data/plates/us-al.yml +457 -0
  111. data/data/plates/us-ar.yml +427 -0
  112. data/data/plates/us-as.yml +454 -0
  113. data/data/plates/us-az.yml +430 -0
  114. data/data/plates/us-ca.yml +892 -0
  115. data/data/plates/us-co.yml +452 -0
  116. data/data/plates/us-ct.yml +427 -0
  117. data/data/plates/us-dc.yml +614 -0
  118. data/data/plates/us-de.yml +551 -0
  119. data/data/plates/us-fl.yml +741 -0
  120. data/data/plates/us-ga.yml +644 -0
  121. data/data/plates/us-gu.yml +658 -0
  122. data/data/plates/us-hi.yml +585 -0
  123. data/data/plates/us-ia.yml +438 -0
  124. data/data/plates/us-id.yml +531 -0
  125. data/data/plates/us-il.yml +516 -0
  126. data/data/plates/us-in.yml +324 -0
  127. data/data/plates/us-ks.yml +351 -0
  128. data/data/plates/us-ky.yml +770 -0
  129. data/data/plates/us-la.yml +568 -0
  130. data/data/plates/us-ma.yml +379 -0
  131. data/data/plates/us-md.yml +536 -0
  132. data/data/plates/us-me.yml +445 -0
  133. data/data/plates/us-mi.yml +408 -0
  134. data/data/plates/us-mn.yml +411 -0
  135. data/data/plates/us-mo.yml +356 -0
  136. data/data/plates/us-mp.yml +402 -0
  137. data/data/plates/us-ms.yml +432 -0
  138. data/data/plates/us-mt.yml +619 -0
  139. data/data/plates/us-nc.yml +602 -0
  140. data/data/plates/us-nd.yml +419 -0
  141. data/data/plates/us-ne.yml +483 -0
  142. data/data/plates/us-nh.yml +394 -0
  143. data/data/plates/us-nj.yml +547 -0
  144. data/data/plates/us-nm.yml +574 -0
  145. data/data/plates/us-nv.yml +655 -0
  146. data/data/plates/us-ny.yml +592 -0
  147. data/data/plates/us-oh.yml +404 -0
  148. data/data/plates/us-ok.yml +513 -0
  149. data/data/plates/us-or.yml +392 -0
  150. data/data/plates/us-pa.yml +506 -0
  151. data/data/plates/us-pr.yml +507 -0
  152. data/data/plates/us-ri.yml +445 -0
  153. data/data/plates/us-sc.yml +605 -0
  154. data/data/plates/us-sd.yml +428 -0
  155. data/data/plates/us-tn.yml +471 -0
  156. data/data/plates/us-tx.yml +535 -0
  157. data/data/plates/us-ut.yml +384 -0
  158. data/data/plates/us-va.yml +567 -0
  159. data/data/plates/us-vi.yml +489 -0
  160. data/data/plates/us-vt.yml +458 -0
  161. data/data/plates/us-wa.yml +484 -0
  162. data/data/plates/us-wi.yml +509 -0
  163. data/data/plates/us-wv.yml +446 -0
  164. data/data/plates/us-wy.yml +523 -0
  165. data/data/plates/va.yml +604 -0
  166. data/data/plates/za.yml +1141 -0
  167. data/data/vehicles.json +160653 -105090
  168. data/lib/vehicles/configuration.rb +18 -2
  169. data/lib/vehicles/dataset.rb +73 -18
  170. data/lib/vehicles/fuzzy.rb +115 -0
  171. data/lib/vehicles/http.rb +48 -0
  172. data/lib/vehicles/make.rb +36 -6
  173. data/lib/vehicles/mcp_server.rb +5 -5
  174. data/lib/vehicles/model.rb +42 -6
  175. data/lib/vehicles/plates/jurisdiction.rb +32 -0
  176. data/lib/vehicles/plates/series.rb +291 -0
  177. data/lib/vehicles/plates/template_fill.rb +188 -0
  178. data/lib/vehicles/plates/templates.rb +162 -0
  179. data/lib/vehicles/plates.rb +122 -0
  180. data/lib/vehicles/providers/hosted_provider.rb +49 -58
  181. data/lib/vehicles/providers/local_provider.rb +4 -3
  182. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  183. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  184. data/lib/vehicles/version.rb +1 -1
  185. data/lib/vehicles.rb +53 -16
  186. data/rakelib/data_refresh.rake +109 -0
  187. data/rakelib/plates_refresh.rake +29 -0
  188. data/sig/vehicles.rbs +18 -0
  189. metadata +174 -2
@@ -0,0 +1,743 @@
1
+ # plates/ca-nl.yml — Newfoundland and Labrador, Canada (PRD-PLATES gate L2/L3,
2
+ # Canada east wave).
3
+ #
4
+ # NEWFOUNDLAND AND LABRADOR DOES NOT CALL IT A LICENCE PLATE OR A NUMBER PLATE.
5
+ # The Highway Traffic Act's term of art is IDENTIFICATION PLATE, defined at s. 2:
6
+ # "'identification plate' means an identification plate issued under this Act in
7
+ # respect of a vehicle". "Number plate" appears exactly once in the whole
8
+ # consolidation, in the marginal note to s. 32 ("number plate capable of being
9
+ # confused with identification plate or marker"). The province also issues
10
+ # MARKERS and DECALS as separate objects under s. 34. A consumer searching this
11
+ # jurisdiction's law for "licence plate" will find nothing; that is recorded here
12
+ # so nobody repeats the search.
13
+ #
14
+ # FOUR STRUCTURAL FACTS THAT SHAPE THIS FILE
15
+ #
16
+ # 1. THE PLATE'S ENTIRE CONTENT IS THE REGISTRAR'S, IN ONE SENTENCE. HTA s. 16(2),
17
+ # verbatim: "The registrar shall issue, in respect of a vehicle that has been
18
+ # registered, (a) a numbered vehicle licence in a form prescribed by the
19
+ # registrar; and (b) ONE OR MORE IDENTIFICATION PLATES AS DETERMINED BY THE
20
+ # REGISTRAR, AND THE IDENTIFICATION PLATES SHALL BE DISTINCTIVE AND NUMBERED AS
21
+ # THE REGISTRAR MAY DETERMINE." That is the whole statutory specification: how
22
+ # many plates, what they look like and how they are numbered are all one
23
+ # official's discretion. s. 16(4) adds that the registrar "may issue different
24
+ # vehicle licences and identification plates in respect of different classes of
25
+ # vehicles or in respect of the same class of vehicle used for different
26
+ # purposes" — the statutory basis for the class-letter system in
27
+ # `common.class_letters`, without naming a single letter.
28
+ #
29
+ # 2. PLATE COUNT IS A CLASS SIGNAL AND THE ACT MAKES IT VISIBLE. s. 30(2),
30
+ # verbatim: a driver or owner shall ensure that "(a) where ONE plate is issued,
31
+ # that the plate is clearly visible from the REAR of the vehicle; and (b) where
32
+ # 2 plates are issued, one plate is clearly visible from the FRONT of the
33
+ # vehicle and the other plate is clearly visible from the rear." The Act never
34
+ # says WHICH classes get two — that is s. 16(2)(b) discretion — but the
35
+ # secondary record is consistent that buses, trucks, emergency vehicles and
36
+ # government vehicles carry two while private cars carry one.
37
+ #
38
+ # 3. THE CLASS LETTER IS THE ONLY DECODE, AND IT IS ENTIRELY SECONDARY. Every
39
+ # Newfoundland and Labrador series shares one three-letter three-numeral
40
+ # skeleton and is separated only by its leading letter or letter pair — A/H/J
41
+ # private car, B bus, C truck, D dealer, E emergency, F farm, G government,
42
+ # K trail bike, M motorcycle, PR apportioned, S snowmobile, T trailer, TX taxi,
43
+ # W tow truck, X heavy machinery, V off-road and veteran, VO1/VO2 amateur radio,
44
+ # AA antique, FF firefighter. NO INSTRUMENT STATES ANY OF IT. The table is
45
+ # inlined in `common.class_letters`, tagged `secondary-wikipedia`, and every
46
+ # series below that relies on it says so.
47
+ #
48
+ # 4. THE BASE HAS CHANGED FOUR TIMES SINCE 2007 WITHOUT THE FORMAT MOVING ONCE.
49
+ # The pitcher-plant base ran from April 2007, was interrupted by the
50
+ # "COME HOME 2022" base for calendar 2022, resumed in January 2023, was
51
+ # interrupted again by the "1949 - 2024 / 75" confederation-anniversary base for
52
+ # calendar 2024, and resumed in November 2025 with the province name in black.
53
+ # Four bases, one format (ABC 123), continuous serial allocation across all of
54
+ # them. Each interruption is authored as its own series because the DESIGN and
55
+ # the PERIOD both differ (PRD-PLATES §2.3), and they overlap the pitcher-plant
56
+ # series by construction — the parallel-issuance case §2.2 contemplates.
57
+ #
58
+ # SEPARATOR NOTE (PRD-PLATES §2.6): the serial prints as a gap. Every `pattern`
59
+ # spells the emitted space; every regex accepts it as optional.
60
+ jurisdiction: ca-nl
61
+ authority:
62
+ name: Motor Registration Division, Department of Digital Government and Service NL
63
+ url: "https://www.gov.nl.ca/motorregistration/plates/"
64
+ binding: vehicle
65
+ binding_note: >-
66
+ HTA s. 16(2) issues identification plates "in respect of A VEHICLE that has been
67
+ registered", and s. 33 lets a traffic officer seize a plate "that was not issued
68
+ for it". The physical plate is the Crown's: s. 28(1), verbatim, "Every licence,
69
+ identification plate, marker and permit that the registrar issues is and remains
70
+ the property of the Crown and shall be returned to the registrar on the
71
+ registrars request." (The consolidation prints "registrars" without an
72
+ apostrophe; quoted as found.) s. 28(2) is unusual and worth carrying: a person
73
+ who FINDS an unexpired plate that is not theirs "shall return the plate or
74
+ licence to the registrar or nearest traffic officer."
75
+ instrument:
76
+ statute: "Highway Traffic Act, RSNL1990 c. H-3 — ss. 2 (definitions), 16 (registration and issuance of identification plates), 28 (Crown property), 30 (attachment), 31 (kept clean), 32 (confusable plates), 33 (seizure), 34 (other plates and markers), 35 (lost or mutilated), 41(3), 195 (regulations)"
77
+ sources:
78
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # Highway Traffic Act, RSNL1990 c. H-3, full consolidated text, fetched 2026-08-02 — every statutory quotation in this file"
79
+ licence: >-
80
+ The Highway Traffic Act is an EDICT OF GOVERNMENT and its text is
81
+ uncopyrightable (PRD-PLATES §4). Every verbatim statutory quotation here is of
82
+ that text.
83
+ regulations_not_read: >-
84
+ HTA s. 34 empowers the registrar to "issue other plates or markers that may be
85
+ prescribed in regulations made under section 195, in addition to the
86
+ identification plates referred to in section 16, which shall be displayed on
87
+ the vehicle in the manner that may be prescribed in the regulations." The
88
+ Motor Vehicle Registration Regulations under s. 195 were NOT located or read in
89
+ this pass and are the first place a verifier should look for anything about
90
+ plate appearance, colour or class letters. Recorded as the principal gap in
91
+ this file.
92
+
93
+ artwork_risk:
94
+ posture: crown-copyright-asserted
95
+ basis: >-
96
+ Newfoundland and Labrador asserts Crown copyright: gov.nl.ca pages close with
97
+ "This page and all contents are copyright, Government of Newfoundland and
98
+ Labrador, all rights reserved." No provincial open licence covering plate
99
+ ARTWORK was located. The statute TEXT is free as an edict of government.
100
+ emblem_rule: >-
101
+ PRD-PLATES §3 placeholder default applies. The pitcher plant (the provincial
102
+ floral emblem, and the centrepiece of the provincial wordmark), the whale
103
+ graphic of the 2022 base, the provincial flag sections and the half maple leaf
104
+ of the 2024 base are all rendered `placeholder`. The pitcher-plant wordmark is
105
+ a government identifier likely to carry trade-mark protection independent of
106
+ copyright; unresearched, flagged.
107
+
108
+ common:
109
+ terminology:
110
+ note: >-
111
+ THE STATUTE'S OWN WORD IS "IDENTIFICATION PLATE" — see the file header. HTA
112
+ s. 2, verbatim: "'identification plate' means an identification plate issued
113
+ under this Act in respect of a vehicle". The definition of "fictitious
114
+ identification plate or marker" then shows the family: "an identification
115
+ plate, STICKER OR MARKER which has not been issued under this Act or which has
116
+ not been issued for the registration year in which it is used or which is
117
+ attached to a vehicle other than that for which it was issued". Plates,
118
+ stickers and markers are three statutory objects, and snowmobile registrations
119
+ in this province are DECALS rather than plates (secondary).
120
+ source: "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 2 definitions"
121
+ issuance:
122
+ text: >-
123
+ HTA s. 16(2), verbatim: "The registrar shall issue, in respect of a vehicle
124
+ that has been registered, (a) a numbered vehicle licence in a form prescribed
125
+ by the registrar; and (b) one or more identification plates as determined by
126
+ the registrar, and the identification plates shall be distinctive and numbered
127
+ as the registrar may determine." s. 16(4), verbatim: "The registrar may issue
128
+ different vehicle licences and identification plates in respect of different
129
+ classes of vehicles or in respect of the same class of vehicle used for
130
+ different purposes."
131
+ consequence: >-
132
+ NOTHING ABOUT A NEWFOUNDLAND AND LABRADOR PLATE IS PRESCRIBED BY LAW except
133
+ that the registrar prescribes it. That is the weakest statutory frame in the
134
+ Canada east wave — weaker than Ontario's (which at least fixes display),
135
+ weaker than New Brunswick's and Prince Edward Island's (which fix content),
136
+ and far weaker than Nova Scotia's and Québec's. Consequently EVERY `format`
137
+ in this file is a secondary claim and every one says so.
138
+ source: "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(2),(4)"
139
+ display:
140
+ text: >-
141
+ HTA s. 30(1), verbatim: "A driver, owner, or a person having care or control
142
+ of a vehicle shall ensure that identification plates are securely fastened at
143
+ all times to the vehicle for which they are issued so as to prevent the plates
144
+ from swinging and are at a height of not less than 30 CENTIMETRES from the
145
+ ground measured from the bottom of each plate and in a place and position so
146
+ that the plate is clearly visible." s. 30(2): "(a) where one plate is issued,
147
+ that the plate is clearly visible from the rear of the vehicle; and (b) where
148
+ 2 plates are issued, one plate is clearly visible from the front of the
149
+ vehicle and the other plate is clearly visible from the rear."
150
+ cleanliness: >-
151
+ s. 31, verbatim: "Each identification plate shall be kept free from dirt and
152
+ shall be so affixed and maintained that the numbers on it may at all times be
153
+ plainly visible and clearly legible and that the view of the plate shall not
154
+ be obstructed or obscured."
155
+ confusable: >-
156
+ s. 32, verbatim: "A plate or number capable of being confused with an
157
+ identification plate or the number on a plate shall not be exposed upon a part
158
+ of a vehicle."
159
+ note: "30 cm is the same minimum height as Nova Scotia (300 mm), New Brunswick (30 cm) and Prince Edward Island (300 mm). Four Atlantic statutes, one number, independently enacted — recorded in each file."
160
+ source: "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA ss. 30(1)-(2), 31, 32, 33"
161
+ dimensions:
162
+ note: >-
163
+ NO NEWFOUNDLAND AND LABRADOR INSTRUMENT PRESCRIBES A PLATE SIZE. s. 16(2)(b)
164
+ leaves it to the registrar and the Act says nothing more. The 6 in x 12 in
165
+ North American convention is recorded on the series below as
166
+ `plate_basis: convention`.
167
+ charset:
168
+ note: >-
169
+ NO INSTRUMENT STATES A SERIAL ALPHABET OR ANY LETTER EXCLUSION, and no
170
+ secondary states one either — the Newfoundland and Labrador article, unlike
171
+ the Ontario, Nova Scotia and Québec articles, carries NO excluded-letter
172
+ claim. No `regex_strict` is authored anywhere in this file, and the absence is
173
+ a finding rather than an omission.
174
+ class_letters:
175
+ note: >-
176
+ TAGGED SECONDARY (PRD-PLATES §4, owner override 2026-08-02) — the whole table.
177
+ Inlined rather than put in `plates/_decode/` because PRD-PLATES §2.4 sends
178
+ LARGE, CLOSED, PRIMARY-SOURCED lists to a decode file and this is small
179
+ (nineteen rows) and not primary. It decodes VEHICLE CLASS, never geography:
180
+ a Newfoundland and Labrador serial encodes no region and no date.
181
+ rows:
182
+ - { code: "A", meaning: "private car", note: "AAA-001 from 1982, exhausted at AZZ-999 in 1998" }
183
+ - { code: "H", meaning: "private car", note: "the block after A — HAB-001 from autumn 1996, exhausted at HZZ-999 in summer 2013" }
184
+ - { code: "J", meaning: "private car", note: "the block after H — JAA-001 from summer 2013, current" }
185
+ - { code: "AA", meaning: "antique auto", note: "'Antique Auto' screened to the left of the serial; the article states cars must be at least 25 years old — the same age bar New Brunswick puts in its Act (MVA s. 1) and five years below Ontario's" }
186
+ - { code: "B", meaning: "bus", note: "BA for public-use buses, BP for private-use; two plates" }
187
+ - { code: "C", meaning: "truck / heavy vehicle", note: "pickups, SUVs and large vans; CAA-001 from 1982, exhausted at CZZ-999 in 2017, then CA0 001 onward; CR marks large mobile cranes; two plates" }
188
+ - { code: "D", meaning: "dealer" }
189
+ - { code: "E", meaning: "emergency vehicle", note: "fire and police, provincial or municipal; also search and rescue; two plates" }
190
+ - { code: "F", meaning: "farm vehicle", note: "FA farm tractors, FE farm equipment, FT farm trucks" }
191
+ - { code: "FF", meaning: "firefighter", note: "fire-department crest to the left of the serial" }
192
+ - { code: "G", meaning: "government vehicle", note: "GM municipal, GP provincial, GF federal; two plates" }
193
+ - { code: "K", meaning: "trail bike", note: "dual-purpose on/off-road motorcycles; same size and base as the motorcycle plate" }
194
+ - { code: "M", meaning: "motorcycle", note: "MCA-001 from 1982" }
195
+ - { code: "PR", meaning: "apportioned (International Registration Plan)", note: "transport trucks; PRP-001 from 1982, reached PRZ-999 in 2012, then PRA-001 onward" }
196
+ - { code: "S", meaning: "snowmobile", note: "issued as DECALS, not plates; older ones may be all-numeric; the current decal is black on white" }
197
+ - { code: "T", meaning: "trailer", note: "TAA-001 from 1982; TX is carved out for taxis" }
198
+ - { code: "TX", meaning: "licensed taxi", note: "supplemented by a municipal taxi licence sticker" }
199
+ - { code: "V", meaning: "off-road (quads and UTVs) in the VLL-999 shape; VETERAN in the V9999 shape", note: "ONE LETTER, TWO PROGRAMMES, DISTINGUISHED ONLY BY THE SHAPE OF WHAT FOLLOWS — the sharpest ambiguity in this table and the reason the two are authored as separate series" }
200
+ - { code: "VA", meaning: "veteran motorcycle" }
201
+ - { code: "VO1 / VO2", meaning: "amateur radio", note: "VO1 for the island of Newfoundland, VO2 for Labrador — the plate reproduces the holder's federal callsign and is NOT issued sequentially; per the article's citation to ISED's RIC-9 call-sign policy, plates run 5 or 6 characters" }
202
+ - { code: "W", meaning: "tow truck", note: "displayed IN ADDITION to a C-series plate — a genuine two-plate-two-series case" }
203
+ - { code: "X", meaning: "heavy machinery", note: "tractors, backhoes, forklifts" }
204
+ source: "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY, read 2026-08-02: the whole 'Vehicle class' table, its per-letter notes and its last-issued serials. No Newfoundland and Labrador instrument states any of it."
205
+ source_statute: "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4): the registrar 'may issue different vehicle licences and identification plates in respect of different classes of vehicles' — the statutory power the table above is an exercise of, and the only primary that touches it"
206
+
207
+ classes_not_modelled:
208
+ electric:
209
+ exists: false
210
+ mechanism: >-
211
+ A PROTOTYPE THAT NEVER SHIPPED, and the government announced it. In November
212
+ 2019 the Government of Newfoundland and Labrador published "Provincial
213
+ Government Highlights Prototype of Electric Vehicle Licence Plates" — a green
214
+ serial on white with the provincial wordmark — announced by the Premier at the
215
+ Drive Electric NL Electric Vehicle Showcase. The article states that as of
216
+ 2023 the design had not been made available and that electric vehicles simply
217
+ use ordinary series plates.
218
+ why_not_modelled: >-
219
+ A DESIGN THAT WAS NEVER ISSUED IS NOT A SERIES. Recorded because the
220
+ government primary exists, because three of the six jurisdictions in this wave
221
+ DO have an electric series (Ontario, Québec, Prince Edward Island) and a
222
+ consumer will ask, and because the honest answer is "announced, prototyped,
223
+ not issued".
224
+ sources:
225
+ - "https://www.gov.nl.ca/releases/2019/exec/1120n06/ # Government of Newfoundland and Labrador news release, 20 November 2019, cited by the article. NOT FETCHED in this pass — cited as the known government primary, unread."
226
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the prototype's description and the statement that it had not been issued as of 2023"
227
+ snowmobile:
228
+ exists: true
229
+ mechanism: "The S block in `common.class_letters` is issued as DECALS rather than plates, per the article, which also notes that older ones may be all-numeric and that the colour changed from orange-on-white to black-on-white."
230
+ why_not_modelled: >-
231
+ A decal is not an identification plate. HTA s. 2's definition of "fictitious
232
+ identification plate or marker" distinguishes "an identification plate,
233
+ sticker or marker", so the statute knows the difference too. Modelling a decal
234
+ as a plate series would misrepresent the object.
235
+ antique_firefighter_farm_emergency:
236
+ exists: true
237
+ mechanism: "The AA, FF, F and E blocks in `common.class_letters` — all real, all with last-issued serials recorded in the article."
238
+ why_not_modelled: >-
239
+ Their arrangements are inconsistent in the secondary itself: the antique
240
+ block's last issue is given as "4433" and the firefighter block's as "6163FF",
241
+ neither of which fits the LLL 999 skeleton every other block follows. Rather
242
+ than reconcile two shapes the source does not explain, the blocks are recorded
243
+ in the class table and no series is authored. A verifier with a photograph can
244
+ settle each in one edit.
245
+ tow_truck_second_plate:
246
+ exists: true
247
+ mechanism: >-
248
+ The W block, per the article: "Tow trucks display a SECOND plate (in addition
249
+ to a 'C' series plate)." That is one vehicle wearing two plates from two
250
+ different series simultaneously — a schema-relevant case, and the only one of
251
+ its kind found in the Canada east wave.
252
+ why_not_modelled: >-
253
+ Recorded rather than authored because the pairing rule, not the serial, is the
254
+ interesting part, and no instrument states either. A parse API asked about a
255
+ W-series string must be told the vehicle also carries a C-series plate, which
256
+ is what this entry is for.
257
+
258
+ series:
259
+
260
+ # =========================================================================
261
+ # THE CURRENT STANDARD SERIES — the pitcher-plant base.
262
+ # =========================================================================
263
+ - id: ca-nl-standard-2007
264
+ class: standard
265
+ categories: [car, van]
266
+ period: { start: 2007 }
267
+ period_evidence: secondary-wikipedia
268
+ matching: strict
269
+ format:
270
+ pattern: "LLL 999"
271
+ regex: '\A[A-Z]{3} ?\d{3}\z'
272
+ charset:
273
+ notes: >-
274
+ Three letters, three numerals. NO EXCLUSION IS STATED BY ANY SOURCE — see
275
+ `common.charset` — so no strict twin is authored. The FIRST LETTER is the
276
+ class code (`common.class_letters`): private cars run in the A, H and J
277
+ blocks, and the J block is current.
278
+ private_car_blocks: [A, H, J]
279
+ progression: >-
280
+ Continuous across base changes: the article's record runs HMV 001 to JPZ 999
281
+ and then JTD 001 to JWY 999 on this base, with the JRA-JTC and JUH-JVV
282
+ stretches falling inside the 2022 and 2024 commemorative bases. THE SERIAL
283
+ RUN IGNORES THE BASE, which is why the commemorative series below overlap
284
+ this one instead of interrupting it.
285
+ separator_note: "a printed gap; `pattern` spells the emitted space and `regex` accepts it as optional"
286
+ design:
287
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
288
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
289
+ foreground: "#003DA5"
290
+ colour_note: "embossed blue serial on white. No instrument states either colour — HTA s. 16(2)(b) leaves the whole appearance to the registrar. Both hexes observed."
291
+ legend_bottom_options: ["Newfoundland Labrador"]
292
+ emblem: { present: true, rendered: placeholder, description: "the provincial wordmark, screened centre-bottom: a pitcher plant with 'Newfoundland' and 'Labrador' below it" }
293
+ band: { side: none }
294
+ rear_differs: false
295
+ display: "ONE plate, REAR, for a private car (HTA s. 30(2)(a)); the count itself is registrar's discretion under s. 16(2)(b)"
296
+ spec_history:
297
+ - { from: 2007, to: 2025, note: "provincial wordmark in blue" }
298
+ - { from: 2025, note: "same base with the province name in BLACK, per the article — a wordmark colour change inside one design, recorded here rather than cut as a series (PRD-PLATES §2.3)" }
299
+ sources:
300
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(2)(b) (the registrar determines number, distinctiveness and numbering), s. 16(4) (different plates for different classes), s. 28(1) (Crown property), s. 30(1)-(2) (30 cm, one plate rear / two plates front and rear), s. 31 (kept clean)"
301
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the pitcher-plant base from April 2007, the ABC 123 format, the December 2021 / January 2023 and December 2022 / January 2024 interruptions, the November 2025 resumption with a black province name, and the issuance ranges"
302
+ notes: >-
303
+ THE CURRENT NEWFOUNDLAND AND LABRADOR PLATE, ON THE WEAKEST STATUTORY FRAME IN
304
+ THE WAVE. HTA s. 16(2)(b) is the entire law of this plate's appearance — "one
305
+ or more identification plates as determined by the registrar ... distinctive
306
+ and numbered as the registrar may determine" — so period, format and colours
307
+ are all the article's and the grade is `secondary-wikipedia` throughout.
308
+ period.start 2007 is the article's April 2007 date, unfootnoted. THE SERIES IS
309
+ NOT ENDED AT EITHER COMMEMORATIVE INTERRUPTION and that is a deliberate
310
+ modelling decision: the serial run continued straight through both, so what
311
+ happened in 2022 and 2024 was a parallel base rather than a succession. The
312
+ two commemorative series therefore OVERLAP this one, legally under
313
+ PRD-PLATES §2.2 and with distinct notes. PARSE CAUTION: ABC 123 is also the
314
+ current shape in Nova Scotia and New Brunswick, so a bare string is not
315
+ diagnostic; the province is recoverable only from the image, or from the class
316
+ letter if the consumer has the block table in `common.class_letters`.
317
+
318
+ - id: ca-nl-comehome-2022
319
+ class: standard
320
+ categories: [car, van]
321
+ period: { start: 2022, end: 2022 }
322
+ period_evidence: secondary-wikipedia
323
+ matching: strict
324
+ format:
325
+ pattern: "LLL 999"
326
+ regex: '\A[A-Z]{3} ?\d{3}\z'
327
+ charset: { notes: "identical to ca-nl-standard-2007 — the base changed and the mark did not" }
328
+ progression: "JRA 001 to JTC 999 per the article, i.e. a contiguous slice of the ordinary J-block run"
329
+ design:
330
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
331
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, note: "white-to-teal gradient, per the article" }
332
+ foreground: "#003DA5"
333
+ legend_bottom_options: ["COME HOME 2022"]
334
+ emblem: { present: true, rendered: placeholder, description: "a screened blue whale graphic; the provincial wordmark screened in red at the top" }
335
+ band: { side: none }
336
+ rear_differs: false
337
+ sources:
338
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the January-December 2022 'COME HOME 2022' base, its whale graphic and teal gradient, and the JRA 001 to JTC 999 range"
339
+ notes: >-
340
+ A COMMEMORATIVE BASE THAT REPLACED THE STANDARD BASE FOR A CALENDAR YEAR, for
341
+ Newfoundland and Labrador's 2022 Come Home Year. Its own series because both
342
+ the design and the period differ (PRD-PLATES §2.3), and it deliberately
343
+ overlaps ca-nl-standard-2007 because the serial run never broke: JRA-JTC is a
344
+ slice of the ordinary J allocation that happens to have been struck on a
345
+ different base. Entirely secondary, and the only Canadian series in this wave
346
+ whose whole existence is a one-year tourism campaign.
347
+
348
+ - id: ca-nl-anniversary-2024
349
+ class: standard
350
+ categories: [car, van]
351
+ period: { start: 2024, end: 2024 }
352
+ period_evidence: secondary-wikipedia
353
+ matching: strict
354
+ format:
355
+ pattern: "LLL 999"
356
+ regex: '\A[A-Z]{3} ?\d{3}\z'
357
+ charset: { notes: "identical to ca-nl-standard-2007" }
358
+ progression: "JUH 001 to JVV 999 per the article — again a contiguous slice of the J-block run"
359
+ design:
360
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
361
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
362
+ foreground: "#000000"
363
+ colour_note: "embossed BLACK serial, per the article — the only black-serial Newfoundland and Labrador base recorded, and the only black standard serial in the Canada east wave"
364
+ legend_bottom_options: ["1949 - 2024"]
365
+ emblem: { present: true, rendered: placeholder, description: "screened blue and grey sections of the provincial flag, a screened red half maple leaf, the pitcher-plant wordmark at the top and a screened '75' in the centre" }
366
+ band: { side: none }
367
+ rear_differs: false
368
+ commemorates: "the 75th anniversary of Newfoundland and Labrador's entry into Canadian Confederation on 31 March 1949"
369
+ sources:
370
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the January-December 2024 anniversary base, its flag and half-maple-leaf graphics, the '1949 - 2024' and '75' legends, and the JUH 001 to JVV 999 range"
371
+ notes: >-
372
+ THE SECOND ONE-YEAR COMMEMORATIVE BASE, on the same logic as
373
+ ca-nl-comehome-2022 and overlapping ca-nl-standard-2007 for the same reason.
374
+ Worth authoring separately rather than folding into a single "commemorative"
375
+ series because the colours differ sharply — black serial here against blue on
376
+ every other Newfoundland and Labrador base — so a photograph is decisive even
377
+ though a string is not. Entirely secondary.
378
+
379
+ - id: ca-nl-standard-1993
380
+ class: standard
381
+ categories: [car, van]
382
+ period: { start: 1993, end: 2007 }
383
+ period_evidence: secondary-wikipedia
384
+ matching: strict
385
+ format:
386
+ pattern: "LLL 999"
387
+ regex: '\A[A-Z]{3} ?\d{3}\z'
388
+ charset: { notes: "as the current series; the private-car blocks in this period were A (to AZZ-999 in 1998) and then H" }
389
+ design:
390
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
391
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
392
+ foreground: "#C8102E"
393
+ colour_note: "embossed RED serial on white, per the article — a different serial colour from both its predecessor (blue) and its successor (blue), which makes this base unusually easy to place"
394
+ legend_bottom_options: ["A WORLD OF DIFFERENCE"]
395
+ emblem: { present: true, rendered: placeholder, description: "a screened Viking ship with a red sail against a yellow sunset, at the bottom of the plate; 'Newfoundland & Labrador' screened in red at the top" }
396
+ band: { side: none }
397
+ rear_differs: false
398
+ display_note: >-
399
+ THE ONE PLATE-COUNT FACT THE ARTICLE DATES: front and rear plates were
400
+ required for private cars until 1997, on the A block. So a Newfoundland and
401
+ Labrador private car of this vintage may lawfully carry two plates where a
402
+ modern one carries one — and HTA s. 30(2) accommodates both without saying
403
+ which applies when, because the count is s. 16(2)(b) discretion.
404
+ sources:
405
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the mid-1993 'A WORLD OF DIFFERENCE' Viking-ship base, its red serial, the ATA 001 to AZF 999 and AZG 001 to AZZ 999 / HBD 001 to HEP 999 ranges, the September 1996 - September 1997 Cabot 500 interruption, and the front-plate requirement to 1997"
406
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 30(2): the statutory rule that accommodates one-plate and two-plate vehicles without prescribing which class gets which"
407
+ notes: >-
408
+ ONE SERIES BACK, and it carries the wave's clearest example of a PLATE-COUNT
409
+ CHANGE inside a single design: private cars in this province wore two plates
410
+ until 1997 and one thereafter, on the same base. Also interrupted, exactly as
411
+ the current base is: a "CABOT / Celebrate 500 Years" base ran September 1996 to
412
+ September 1997 on the H block. That interruption is NOT authored as a series
413
+ here — the L2/L3 scope is the current series plus one back, and a
414
+ commemorative base inside a superseded base is L4 work — but it is recorded so
415
+ a verifier knows it was seen and skipped deliberately.
416
+
417
+ # =========================================================================
418
+ # TRUCK / HEAVY VEHICLE — the C block, and the block that ran out.
419
+ # =========================================================================
420
+ - id: ca-nl-truck-c
421
+ class: standard
422
+ categories: [truck, van]
423
+ period: { start: 1982 }
424
+ period_evidence: secondary-wikipedia
425
+ matching: strict
426
+ format:
427
+ pattern: "CLL 999"
428
+ regex: '\AC[A-Z]{2} ?\d{3}\z'
429
+ charset: { notes: "the literal C is the class letter (`common.class_letters`). The article records the CR pair as marking large mobile crane units — a sub-block, not a separate series." }
430
+ progression: "CAA-001 from 1982 to CZZ-999 in 2017, then the CA0 001 shape below"
431
+ variants:
432
+ - name: "post-exhaustion truck arrangement"
433
+ format: { pattern: "CL9 999", regex: '\AC[A-Z]\d ?\d{3}\z' }
434
+ note: >-
435
+ The article states that when the C block exhausted at CZZ-999 in 2017 the
436
+ province moved to CA0 001 onward, i.e. it swapped the third character from
437
+ a letter to a digit rather than opening a new letter. A variant rather than
438
+ a series because the base, the class and the period are unchanged; the
439
+ current issue quoted by the article, CL7-999, fits this shape.
440
+ design:
441
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
442
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
443
+ foreground: "#003DA5"
444
+ emblem: { present: true, rendered: placeholder, description: "the pitcher-plant wordmark, as the standard base" }
445
+ band: { side: none }
446
+ rear_differs: false
447
+ display: "TWO plates, front and rear, per the article — so HTA s. 30(2)(b) applies and a C-plated vehicle is plated fore and aft"
448
+ scope_note: >-
449
+ TAGGED SECONDARY, AND IT MATTERS FOR THE PARSE LAYER: the article says the C
450
+ block covers "pickup trucks, SUVs and large vans" and adds that "some trucks
451
+ and vans may now be registered as private cars". So the C letter is evidence of
452
+ a truck registration and its absence is NOT evidence against one — the same
453
+ shape of caution Ontario needs for its commercial pickups.
454
+ sources:
455
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4): the registrar may issue different plates for different classes — the only primary behind the C block; s. 30(2)(b): the two-plate display rule this class falls under"
456
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the C block, its 1982 start, its 2017 exhaustion at CZZ-999, the CA0 001 successor shape, the CR crane sub-block, the two-plate requirement and the current issue CL7-999"
457
+ notes: >-
458
+ THE BLOCK-EXHAUSTION CASE OF THIS FILE, and the reason it is authored with a
459
+ variant rather than a second series: Newfoundland and Labrador did not change
460
+ the base or the class when CZZ-999 ran out in 2017, it changed one character
461
+ class inside the same allocation. period.start 1982 is the article's start for
462
+ the C block and is `secondary-wikipedia` like everything else here; note it is
463
+ a claim about the BLOCK, which has outlived four bases, not about a design.
464
+ `class: standard` because the vocabulary has no truck member.
465
+
466
+ # =========================================================================
467
+ # MOTORCYCLE — the M block.
468
+ # =========================================================================
469
+ - id: ca-nl-motorcycle-m
470
+ class: motorcycle
471
+ categories: [motorcycle]
472
+ period: { start: 1982 }
473
+ period_evidence: secondary-wikipedia
474
+ matching: strict
475
+ format:
476
+ pattern: "MLL 999"
477
+ regex: '\AM[A-Z]{2} ?\d{3}\z'
478
+ charset: { notes: "the literal M is the class letter. The K block (trail bikes) shares the plate size and base per the article and is a separate letter, not a variant of this series." }
479
+ progression: "MCA-001 from 1982; the article's current issue is MEO-723"
480
+ design:
481
+ plate_note: "reduced motorcycle size; no instrument states one and no measured figure was obtained. Deliberately absent rather than guessed."
482
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
483
+ foreground: "#003DA5"
484
+ emblem: { present: true, rendered: placeholder }
485
+ band: { side: none }
486
+ rear_differs: false
487
+ display: "ONE plate, REAR (HTA s. 30(2)(a))"
488
+ sources:
489
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 30(2)(a): where one plate is issued it must be visible from the rear"
490
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the M block from 1982 (MCA-001) and the K trail-bike block sharing its size and base"
491
+ notes: >-
492
+ Entirely secondary but for the display rule. Authored because the M letter is a
493
+ clean class signal and because Newfoundland and Labrador's separate K block for
494
+ DUAL-PURPOSE trail bikes is a distinction no other jurisdiction in this wave
495
+ draws — recorded in `common.class_letters` rather than authored, since its
496
+ arrangement is unstated beyond the example KAP-048.
497
+
498
+ # =========================================================================
499
+ # TRAILER — the T block, with a carve-out for taxis.
500
+ # =========================================================================
501
+ - id: ca-nl-trailer-t
502
+ class: trailer
503
+ categories: [trailer, semitrailer]
504
+ period: { start: 1982 }
505
+ period_evidence: secondary-wikipedia
506
+ matching: strict
507
+ format:
508
+ pattern: "TLL 999"
509
+ regex: '\AT[A-Z]{2} ?\d{3}\z'
510
+ charset:
511
+ notes: >-
512
+ The literal T is the class letter, and the second letter is NOT free: the
513
+ article states TX is reserved for taxi plates, so a T-series trailer plate
514
+ never has X in position two. That reservation is NOT encoded in `regex` —
515
+ it would need a strict twin and none is authored in this file — but it is
516
+ the reason ca-nl-taxi-tx exists as its own series and why the two regexes
517
+ overlap on paper while never colliding in issue.
518
+ progression: >-
519
+ The article's account is unusually detailed and worth carrying because it is
520
+ a genuine allocation history: TAA-001 from 1982; a jump from TET-999 to
521
+ TVT-001 when the flag base arrived in 2001; TZZ-999 reached, then a jump BACK
522
+ to TEV-001 on the pitcher-plant base in 2008. Newfoundland and Labrador
523
+ reuses the gaps it leaves.
524
+ design:
525
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
526
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
527
+ foreground: "#003DA5"
528
+ emblem: { present: true, rendered: placeholder }
529
+ band: { side: none }
530
+ rear_differs: false
531
+ display: "ONE plate, REAR (HTA s. 30(2)(a))"
532
+ sources:
533
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the T block from 1982, the TET/TVT and TZZ/TEV jumps, the TX taxi reservation and the current issue TMJ-999"
534
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4): the class-plate power"
535
+ notes: >-
536
+ AUTHORED FOR THE ALLOCATION HISTORY as much as for the format: the T block
537
+ jumped forward in 2001 and backward in 2008, which means a Newfoundland and
538
+ Labrador trailer serial is NOT monotonic in time and a consumer must not read
539
+ one as a date proxy. Entirely secondary.
540
+
541
+ # =========================================================================
542
+ # TAXI — the TX carve-out.
543
+ # =========================================================================
544
+ - id: ca-nl-taxi-tx
545
+ class: taxi
546
+ categories: [car, van]
547
+ period: { start: 1982 }
548
+ period_evidence: secondary-wikipedia
549
+ matching: strict
550
+ format:
551
+ pattern: "TXL 999"
552
+ regex: '\ATX[A-Z] ?\d{3}\z'
553
+ charset: { notes: "the literal TX is the class marker, carved out of the T (trailer) block. One free letter and three numerals follow." }
554
+ design:
555
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
556
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
557
+ foreground: "#003DA5"
558
+ emblem: { present: true, rendered: placeholder }
559
+ band: { side: none }
560
+ rear_differs: false
561
+ supplement: "the article states a TX plate is 'supplemented with a MUNICIPAL taxi licence sticker' — so the provincial plate identifies the class and a municipality licenses the operation, a two-level arrangement worth recording because a photograph will show both"
562
+ sources:
563
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the TX block, its carve-out from T, the municipal sticker and the current issue TXP-999"
564
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4): different plates for 'the same class of vehicle USED FOR DIFFERENT PURPOSES' — the limb of the power a taxi plate is issued under, since a taxi is an ordinary car put to a different use"
565
+ notes: >-
566
+ THE ONE SERIES IN THIS FILE WHOSE STATUTORY BASIS IS THE SECOND LIMB OF
567
+ s. 16(4) — "the same class of vehicle used for different purposes" — which is
568
+ exactly what a taxi is. `class: taxi` is a first-class member of
569
+ _meta/classes.yml and this is its Canadian instance in the wave: Québec
570
+ withdrew its T prefix when it deregulated (plates/ca-qc.yml
571
+ classes_not_modelled.taxi), New Brunswick reserves H for taxis without a
572
+ documented grammar, and Newfoundland and Labrador still issues.
573
+
574
+ # =========================================================================
575
+ # DEALER — the D block.
576
+ # =========================================================================
577
+ - id: ca-nl-dealer-d
578
+ class: dealer
579
+ categories: [car, van, truck]
580
+ period: { start: 1982 }
581
+ period_evidence: secondary-wikipedia
582
+ matching: strict
583
+ format:
584
+ pattern: "DLL 999"
585
+ regex: '\AD[A-Z]{2} ?\d{3}\z'
586
+ charset: { notes: "the literal D is the class letter" }
587
+ design:
588
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
589
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
590
+ foreground: "#003DA5"
591
+ emblem: { present: true, rendered: placeholder }
592
+ band: { side: none }
593
+ rear_differs: false
594
+ binding: business
595
+ permitted_use: "the article states the D block is 'issued to auto dealers for test driving and transporting cars' — no instrument located states a permitted-use rule, in sharp contrast to Prince Edward Island (HTA s. 41, quoted in plates/ca-pe.yml) and Québec (Règlement art. 152, quoted in plates/ca-qc.yml)"
596
+ sources:
597
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the D block, its permitted use and the current issue DAW-768"
598
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4) (the class-plate power) and s. 22 (the registrar's dealer-plate provisions referenced at 'store and use identification plates and dealer plates in accordance with this Act and the regulations') — the Act knows the term 'dealer plates' but never describes one"
599
+ notes: >-
600
+ THE ACT USES THE PHRASE "DEALER PLATES" AND NEVER DEFINES IT — the dealer
601
+ provisions require a dealer to "store and use identification plates and dealer
602
+ plates in accordance with this Act and the regulations" and to account for
603
+ "the dealer's inventory of dealer plates, identification plates and markers",
604
+ so the class is statutory in NAME while every visible property of it is
605
+ secondary. `binding: business` for the usual reason: the plate belongs to the
606
+ trade, not to a vehicle.
607
+
608
+ # =========================================================================
609
+ # GOVERNMENT — the G block, with three sub-blocks by level of government.
610
+ # =========================================================================
611
+ - id: ca-nl-government-g
612
+ class: government
613
+ categories: [car, van, truck]
614
+ period: { start: 1982 }
615
+ period_evidence: secondary-wikipedia
616
+ matching: strict
617
+ format:
618
+ pattern: "GLL 999"
619
+ regex: '\AG[A-Z]{2} ?\d{3}\z'
620
+ regex_strict: '\AG[MPF][A-Z] ?\d{3}\z'
621
+ charset:
622
+ notes: >-
623
+ The literal G is the class letter and the SECOND letter encodes the level
624
+ of government: GM municipal, GP provincial, GF federal, per the article.
625
+ `regex_strict` encodes that three-way second-letter restriction; `regex`
626
+ does not, so a consumer who distrusts the secondary loses nothing. This is
627
+ the only strict twin in the whole file, and it exists because this is the
628
+ only Newfoundland and Labrador block whose SECOND character is documented
629
+ as constrained.
630
+ second_letter: { M: municipal, P: provincial, F: federal }
631
+ design:
632
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
633
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
634
+ foreground: "#003DA5"
635
+ emblem: { present: true, rendered: placeholder }
636
+ band: { side: none }
637
+ rear_differs: false
638
+ display: "TWO plates, front and rear, per the article — HTA s. 30(2)(b)"
639
+ sources:
640
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the G block, the GM/GP/GF sub-blocks by level of government, the two-plate requirement and the current issues GMO-320, GPR-292 and GFM-154"
641
+ - "https://www.assembly.nl.ca/legislation/sr/statutes/h03.htm # HTA s. 16(4) (the class-plate power); s. 30(2)(b) (two-plate display)"
642
+ notes: >-
643
+ A THREE-LEVEL DECODE IN ONE CHARACTER — municipal, provincial and FEDERAL
644
+ vehicles all plated by the province, distinguished by the second letter. That
645
+ is worth authoring and worth a strict twin, and it is also the file's clearest
646
+ illustration of how much decode Newfoundland and Labrador packs into a
647
+ skeleton that carries no region and no date. Entirely secondary; the E block
648
+ (emergency vehicles, including provincially and municipally owned fire and
649
+ police) is recorded in `common.class_letters` but not authored, because its
650
+ relationship to G is not explained by the source.
651
+
652
+ # =========================================================================
653
+ # AMATEUR RADIO — a federal callsign on a provincial plate.
654
+ # =========================================================================
655
+ - id: ca-nl-amateur-radio-vo
656
+ class: personalized
657
+ categories: [car, van]
658
+ period: { start: 1982 }
659
+ period_evidence: secondary-wikipedia
660
+ matching: recall-only
661
+ format:
662
+ pattern: "VO1LLL"
663
+ regex: '\AVO[12] ?[A-Z0-9]{2,3}\z'
664
+ charset:
665
+ notes: >-
666
+ The pattern spells the VO1 (island) form as the canonical printed example; `regex` admits VO2 (Labrador) equally. VO1 is the Innovation, Science and Economic Development Canada amateur
667
+ callsign prefix for the island of Newfoundland and VO2 for Labrador, so
668
+ this plate reproduces a FEDERAL identifier on a provincial plate — the same
669
+ structure as Québec's VA2/VE2 series (plates/ca-qc.yml
670
+ ca-qc-amateur-radio), which is no coincidence: both provinces simply print
671
+ the callsign. The article states plates "may vary between 5 and 6
672
+ characters, as operators may conditionally be issued a shorter callsign",
673
+ citing ISED's RIC-9 call-sign policy, and that these plates are NOT issued
674
+ sequentially because callsigns are chosen.
675
+ recall_reason: >-
676
+ `matching: recall-only` because the suffix alphabet is not stated anywhere:
677
+ RIC-9 governs callsign suffixes and was not read in this pass, so `regex`
678
+ accepts any two or three serial characters after the prefix, which is
679
+ certainly wider than what ISED assigns. A match is a shape hit and nothing
680
+ more (PRD-PLATES §2.7).
681
+ design:
682
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
683
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
684
+ foreground: "#003DA5"
685
+ emblem: { present: true, rendered: placeholder }
686
+ band: { side: none }
687
+ rear_differs: false
688
+ sources:
689
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the VO1 (Newfoundland) and VO2 (Labrador) blocks, the callsign-matching rule, the non-sequential issuance and the 5-to-6-character range"
690
+ - "https://ised-isde.canada.ca/site/spectrum-management-telecommunications/en/licences-and-certificates/radiocom-information-circulars-ric/ric-9-call-sign-policy-and-special-event-prefixes # ISED Canada, RIC-9 'Call Sign Policy and Special Event Prefixes' — the federal instrument that actually allocates these strings, cited by the article. NOT FETCHED in this pass; cited as the known primary, unread. A verifier who reads it can promote this series to `matching: strict` with a real suffix alphabet."
691
+ notes: >-
692
+ THE ONLY SERIES IN THE CANADA EAST WAVE WHOSE SERIAL IS ALLOCATED BY A
693
+ DIFFERENT LEVEL OF GOVERNMENT — Innovation, Science and Economic Development
694
+ Canada assigns the callsign and the province merely prints it, exactly as in
695
+ Québec. The VO1/VO2 split is also the only GEOGRAPHIC decode anywhere in this
696
+ file: VO1 is the island, VO2 is Labrador, and that distinction survives on the
697
+ plate because it survives in the federal callsign. `class: personalized` is the
698
+ least-wrong vocabulary member — the holder does not choose the string freely,
699
+ but it is theirs rather than the registrar's — and the choice is flagged for a
700
+ verifier, as it is on the Québec twin.
701
+
702
+ # =========================================================================
703
+ # VETERAN — the V block's second, numeric meaning.
704
+ # =========================================================================
705
+ - id: ca-nl-veteran-v
706
+ class: specialty
707
+ categories: [car, van, truck]
708
+ period: { start: 2007 }
709
+ period_evidence: secondary-wikipedia
710
+ matching: strict
711
+ format:
712
+ pattern: "V9999"
713
+ regex: '\AV ?\d{4}\z'
714
+ charset:
715
+ notes: >-
716
+ THE V LETTER MEANS TWO THINGS IN THIS PROVINCE AND ONLY THE SHAPE
717
+ SEPARATES THEM: V followed by two letters and three numerals is an
718
+ OFF-ROAD plate (quads and UTVs, the VBC-123 form); V followed by four
719
+ numerals is a VETERAN plate. That is the sharpest ambiguity in
720
+ `common.class_letters` and the reason the veteran series is authored with
721
+ an all-numeric body while the off-road form is left in the class table.
722
+ variants:
723
+ - name: "veteran motorcycle"
724
+ format: { pattern: "VA999", regex: '\AVA ?\d{3}\z' }
725
+ note: "the article records VA as the veteran MOTORCYCLE block, in the VA123 shape — a third meaning for a V-initial string, and a fourth if the Québec VA2 amateur block is in the consumer's candidate set"
726
+ design:
727
+ plate: { w: 12, h: 6, unit: in, plate_basis: convention }
728
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
729
+ foreground: "#003DA5"
730
+ emblem: { present: true, rendered: placeholder }
731
+ band: { side: none }
732
+ rear_differs: false
733
+ sources:
734
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Newfoundland_and_Labrador # TAGGED SECONDARY: the V (V1234) veteran block and the VA (VA123) veteran motorcycle block, with current issues V3223 and VA644"
735
+ notes: >-
736
+ AUTHORED FOR THE AMBIGUITY, WHICH IS THE POINT. A parse API handed "V1234"
737
+ must return a Newfoundland and Labrador VETERAN candidate; handed "VBC 123" it
738
+ must return an OFF-ROAD candidate; handed "VA644" a veteran-motorcycle
739
+ candidate; and handed "VA2 AB" a QUÉBEC amateur-radio candidate. Four readings
740
+ of a V-initial Canadian string, three of them in this province. period.start
741
+ 2007 is a FLOOR rather than a start: no source dates the veteran programme, and
742
+ 2007 is the earliest base on which the article records it. `class: specialty`
743
+ for the usual vocabulary reason. Entirely secondary.