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,499 @@
1
+ # plates/ca-mb.yml — Manitoba (PRD-PLATES gate L3, Canada west).
2
+ #
3
+ # ── THE FIND: A 1997 GOVERNMENT NEWS RELEASE THAT DATES TWO SERIES AT ONCE.
4
+ #
5
+ # Province of Manitoba news release, 13 June 1997, "New Licence Plates Being
6
+ # Distributed", attributed to Highways and Transportation Minister Glen Findlay.
7
+ # Four sentences from it carry this whole file's period spine, verbatim:
8
+ #
9
+ # "Manitoba's new licence plates will begin appearing on registered vehicles
10
+ # this month, Highways and Transportation Minister Glen Findlay announced
11
+ # today."
12
+ # "Registered owners will receive their new plates when they reach their
13
+ # annual Autopac renewal dates between Aug. 1, 1997, and July 31, 1998. The
14
+ # first registration renewals will be mailed June 17."
15
+ # "With the new issue, Manitoba returns to a 'front and rear' two-plate system
16
+ # for most vehicles. The new dual plates will be issued to approximately
17
+ # 730,000 vehicles such as passenger cars, trucks and vans. A single plate
18
+ # will be issued to about 120,000 vehicles such as motorcycles and trailers."
19
+ # "The new licence plate features images of trees, water and wheat, replacing
20
+ # the black or black and red on white licence plates first issued in 1983."
21
+ #
22
+ # That last clause is the prize. A government press office, in 1997, dating the
23
+ # PREVIOUS base to 1983 — which is exactly the kind of claim that otherwise
24
+ # survives only as an unfootnoted encyclopedia row. ca-mb-standard-1983's
25
+ # `period.start` is therefore `agency-stated-date`, not `secondary-wikipedia`,
26
+ # and it is the only pre-2000 Canadian series in this seven-file wave with a
27
+ # government source behind its start year.
28
+ #
29
+ # The release also gives a genuine ROLLOUT WINDOW rather than a point: first
30
+ # renewals mailed 17 June 1997, distribution running to 31 July 1998, i.e. a
31
+ # full replacement cycle keyed to each owner's Autopac renewal date. Both bases
32
+ # were on the road together for thirteen months, by design.
33
+ #
34
+ # ── FOUR FURTHER FACTS ─────────────────────────────────────────────────────
35
+ #
36
+ # 1. MANITOBA LEGISLATES ITS SPECIALTY PLATES ONE BY ONE, IN THE ACT ITSELF.
37
+ # The Drivers and Vehicles Act, C.C.S.M. c. D104, ss. 60.1, 60.2 and 60.3
38
+ # each create a NAMED specialty plate and PRESCRIBE ITS CONTENT — "SUPPORT
39
+ # OUR TROOPS" in capital letters (2014), "MMIWG2S" in capital letters with
40
+ # "either a red hand or a red dress" (2023), and "Manitoba Parks" (2024).
41
+ # That is a completely different architecture from Alberta's (a general
42
+ # specialty power exercised by contract, AR 320/2002 s. 63.1) and from
43
+ # Washington's statutory table of dozens. Manitoba's list is short,
44
+ # statutory, individually dated by its enacting Act, and therefore gives
45
+ # each of these series a real `enabling-statute` start — the strongest
46
+ # period grade in this file.
47
+ #
48
+ # 2. THE DESIGN IS THE REGISTRAR'S, SUBJECT TO THOSE THREE SECTIONS.
49
+ # s. 60(1), verbatim: "Subject to sections 60.1 to 60.3, a number plate may
50
+ # consist of numbers, letters or WORDS and must be of a design, colour and
51
+ # material determined by the registrar." Note "words" — Manitoba's statute
52
+ # contemplates a plate whose content is not a serial at all, which is what
53
+ # makes the specialty sections coherent. s. 60(2): "A number plate is the
54
+ # property of the Crown."
55
+ #
56
+ # 3. MANITOBA LEGISLATES WHAT MUST BE READABLE, NOT MERELY THAT THE PLATE MUST
57
+ # BE. s. 61(1) requires that all of the following be "clearly visible and
58
+ # readable and unobscured by any part of the vehicle, its attachments or its
59
+ # load": "(a) the jurisdiction or authority that issued the number plates;
60
+ # (b) the vehicle's registration number and class; (c) the period of validity
61
+ # or date of expiry of the registration." A three-part legibility duty, and
62
+ # it is a useful specification of what a Manitoba plate carries: issuer,
63
+ # number, CLASS, and validity. The class and validity ride on STICKERS
64
+ # (defined in s. 1 as "registration class sticker" and "validation sticker"),
65
+ # so Manitoba — unlike Saskatchewan since 2012 and Idaho since 2026 — still
66
+ # legislates a visible validity marker.
67
+ #
68
+ # 4. MANITOBA HAS A REPAIRER PLATE, WHICH ALMOST NOBODY DOES. ss. 64, 65 and 66
69
+ # create dealers', REPAIRERS' and collector number plates as three distinct
70
+ # statutory types, and s. 35(2)-(4) makes a registration card issued in
71
+ # relation to each of them "deemed to have been issued for a vehicle" when the
72
+ # vehicle displays the right quantity and type. A repairer plate bound to a
73
+ # repair business, separate from a dealer plate, is a class flag no other
74
+ # jurisdiction in this seven-file wave carries.
75
+ #
76
+ # REGEX / SEPARATOR POLICY: Manitoba's serial is printed in two groups of three
77
+ # with a gap and no source states a glyph, so every regex spells the position
78
+ # with the sanctioned separator-only class `[- ]?` (§ 2.8) while `pattern` shows
79
+ # the canonical printed space.
80
+ jurisdiction: ca-mb
81
+ authority:
82
+ name: Registrar of Motor Vehicles, Manitoba, with Manitoba Public Insurance (MPI) as administrator under The Drivers and Vehicles Act
83
+ url: "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php"
84
+ authority_url_note: >-
85
+ The authority URL points at the ACT because MPI's own plate pages did not
86
+ resolve in this pass (mpi.mb.ca/plates/ and /personalized-plates/ both
87
+ returned HTTP 404 on 2026-08-02). A verifier should substitute MPI's current
88
+ plate landing page.
89
+ binding: vehicle
90
+ binding_note: >-
91
+ s. 34(1)(a) ties lawful operation to the vehicle displaying "the quantity and
92
+ type of number plates that the regulations prescribe for use on a vehicle of
93
+ its registration class" AND to those plates displaying "the vehicle's
94
+ registration card number". The plate is bound to the REGISTRATION CARD, and
95
+ s. 59(1)(b) lets the registrar authorise a registered owner who already holds
96
+ the right quantity and type to re-use those plates on a newly registered
97
+ vehicle — so plates move with the owner inside a registration class.
98
+ s. 60(3): on expiry without renewal, the former registered owner "may keep the
99
+ number plates issued with the registration card but must return them to the
100
+ registrar if the registrar requests their return."
101
+ instrument:
102
+ statute:
103
+ citation: "The Drivers and Vehicles Act, C.C.S.M. c. D104 — s. 1 (definitions of 'number plate', 'registration class sticker', 'validation sticker'), s. 34 (registration and number plate requirements), s. 35(2)-(4), ss. 59, 60, 60.1, 60.2, 60.3, 61, 63, 64, 65, 66"
104
+ amendment_notes_seen: "s. 60 as amended S.M. 2014, c. 38, s. 2; S.M. 2023, c. 33, s. 2; S.M. 2024, c. 28, s. 2. s. 60.1 enacted S.M. 2014, c. 38, s. 3. s. 60.2 enacted S.M. 2023, c. 33, s. 3. s. 60.3 enacted S.M. 2024, c. 28, s. 3. ss. 64-66 as enacted S.M. 2018, c. 10, Sch. C, s. 15."
105
+ source: "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # bilingual consolidation; ss. 59-61, 64-66 read verbatim 2026-08-02"
106
+ pdf: "https://web2.gov.mb.ca/laws/statutes/ccsm/_pdf.php?cap=d104"
107
+ regulation:
108
+ status: not-read
109
+ note: >-
110
+ NEGATIVE FINDING. ss. 34, 59 and 61 all delegate the QUANTITY AND TYPE of
111
+ number plates per registration class to regulations under the Act. The
112
+ consolidated-regulations index for c. D104 (web2.gov.mb.ca/laws/regs/) was
113
+ fetched and serves its regulation list through JavaScript; no regulation
114
+ title or PDF link was extractable. So Manitoba's per-class plate counts
115
+ rest on the 1997 news release, not on the regulation that governs them.
116
+ This is the file's single highest-value follow-up.
117
+ news_release:
118
+ citation: "Province of Manitoba, 'New Licence Plates Being Distributed — Phase-In Process Will Result in New and Old Plates for Several Months', 13 June 1997"
119
+ source: "https://news.gov.mb.ca/news/index.html?item=22982&posted=1997-06-13 # full body served and read 2026-08-02"
120
+ licence: "Manitoba Laws and Manitoba news releases are Province of Manitoba publications; the Act is an edict of government. Cited, quoted for operative sentences, not reproduced."
121
+
122
+ artwork_risk:
123
+ posture: unresearched-crown-copyright-presumed
124
+ basis: >-
125
+ Crown copyright under s. 12 of the Copyright Act (Canada) is the default;
126
+ no Manitoba disclaimer was found. Manitoba is, however, the group's clearest
127
+ case of THIRD-PARTY SUBJECT MATTER PLACED ON A PLATE BY STATUTE: s. 60.2(2)
128
+ requires the MMIWG2S plate to depict "either a red hand or a red dress" —
129
+ symbols belonging to a social movement, not to the Crown — and ss. 60.1 and
130
+ 60.3 both require "a graphic symbolic of the message conveyed by those
131
+ words", with the specific artwork determined by the registrar on an
132
+ organization's application. The artwork on Manitoba's specialty plates is
133
+ thus statutorily mandated in SUBJECT and contracted in EXECUTION.
134
+ emblem_rule: >-
135
+ PRD-PLATES § 3 placeholder default applies to every graphic: the reported
136
+ bison device and maple leaf on the standard base, and all three statutory
137
+ specialty graphics. Render `{present: true, rendered: placeholder}`.
138
+ sources:
139
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # ss. 60.1(1)(b), 60.2(2)(b), 60.3(1)(b)"
140
+
141
+ display_rules:
142
+ count: >-
143
+ TWO plates (front and rear) for most classes; ONE for motorcycles and
144
+ trailers. From the 1997 release, verbatim: "With the new issue, Manitoba
145
+ returns to a 'front and rear' two-plate system for most vehicles. The new
146
+ dual plates will be issued to approximately 730,000 vehicles such as
147
+ passenger cars, trucks and vans. A single plate will be issued to about
148
+ 120,000 vehicles such as motorcycles and trailers." Note the word RETURNS:
149
+ Manitoba had been a one-plate province before 1997 and went back to two,
150
+ against the direction every other jurisdiction in this wave moved (SGI went
151
+ single in 2004; Alberta, Yukon, NWT and Nunavut are all single). Manitoba is
152
+ the counter-example and the 1997 release states the rationale: "The return
153
+ to a front as well as rear plate increases the opportunity for vehicle
154
+ identification".
155
+ quantity_is_regulated_not_legislated: "s. 59(1) and s. 34(1)(a)(ii) both send the quantity and type to regulations, which were not reachable (see instrument.regulation)."
156
+ legibility: >-
157
+ s. 61(1): the plates must be secured and maintained so that "(a) the
158
+ jurisdiction or authority that issued the number plates; (b) the vehicle's
159
+ registration number and class; (c) the period of validity or date of expiry
160
+ of the registration" are "clearly visible and readable and unobscured by any
161
+ part of the vehicle, its attachments or its load."
162
+ look_alikes: "s. 62 governs 'Devices resembling plates and plates of other jurisdictions'; s. 63 gives a seizure power. Their text was not extracted (recorded gap)."
163
+ sources:
164
+ - "https://news.gov.mb.ca/news/index.html?item=22982&posted=1997-06-13 # the two-plate return, the per-class counts, the rationale"
165
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # ss. 34(1)(a), 59(1), 61(1)"
166
+
167
+ common:
168
+ dimensions_note: "NEGATIVE FINDING. No dimension appears in c. D104. The reported 12 x 6 in / 30 x 15 cm convention is recorded and asserted nowhere; `design.plate` is absent throughout."
169
+ alphabet_note: >-
170
+ The per-province encyclopedia article reports that current Manitoba
171
+ passenger serials exclude I, O and Q. No Manitoba source states an alphabet,
172
+ so this is carried as `charset.excluded` with a secondary grade and is NOT
173
+ encoded in any `regex_strict` — the same rule applied in plates/ca-ab.yml
174
+ and plates/ca-sk.yml, and the opposite of plates/ca-bc.yml where the agency
175
+ states it.
176
+ what_is_on_the_plate: >-
177
+ s. 1 defines "number plate" as "a plate to be displayed on a vehicle showing
178
+ the numbers and letters that make up the vehicle's registration number", and
179
+ s. 34(1)(a)(iii) requires the plates to display "the vehicle's registration
180
+ card number and, in accordance with the regulations, stickers showing the
181
+ vehicle's registration class and that the registration is valid". So a
182
+ Manitoba plate face carries, by statute: the registration number, a
183
+ registration-CLASS sticker, and a VALIDATION sticker. Two stickers, not one.
184
+
185
+ series:
186
+
187
+ - id: ca-mb-standard
188
+ class: standard
189
+ categories: [car, van, truck, bus]
190
+ period: { start: 1997 }
191
+ period_evidence: agency-stated-date
192
+ period_rollout:
193
+ first_renewals_mailed: "1997-06-17"
194
+ distribution_window_start: "1997-08-01"
195
+ distribution_window_end: "1998-07-31"
196
+ note: >-
197
+ PRD-PLATES § 2.2's `period.rollout` case, met by a primary source. The
198
+ 1997 release gives three distinct dates rather than one: plates begin
199
+ appearing in June 1997, the first renewal notices are mailed
200
+ 17 June 1997, and every registered owner receives plates at their
201
+ Autopac renewal date "between Aug. 1, 1997, and July 31, 1998". The
202
+ release's own subheading says it plainly: "Phase-In Process Will Result
203
+ in New and Old Plates for Several Months."
204
+ matching: strict
205
+ format:
206
+ pattern: "LLL 999"
207
+ regex: '\A[A-Z]{3}[- ]?\d{3}\z'
208
+ evidence: secondary
209
+ charset:
210
+ excluded: ["I", "O", "Q"]
211
+ notes: "Secondary only; see common.alphabet_note."
212
+ progression: "not published"
213
+ design:
214
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
215
+ foreground: "#003C71"
216
+ legend_top: "MANITOBA"
217
+ legend_bottom: "Friendly Manitoba"
218
+ emblem: { present: true, rendered: placeholder, description: "river/prairie scene with trees, water and wheat (stated in the 1997 release); bison device and maple leaf reported by secondary sources" }
219
+ material_note: "The 1997 release states the plates carry 'a reflectorized coating [that] will make the plates much more visible in headlights'."
220
+ design_basis: mixed-primary-scene-secondary-colours
221
+ rear_differs: false
222
+ notes: >-
223
+ PERIOD AND SCENE ARE PRIMARY; THE SERIAL ARRANGEMENT IS NOT. The 1997
224
+ release dates the base and describes its imagery in the government's own
225
+ words ("features images of trees, water and wheat"), which is why the
226
+ grade is `agency-stated-date`. It says NOTHING about the serial
227
+ arrangement, so `LLL 999` is carried at `format.evidence: secondary` from
228
+ the per-province encyclopedia table. Do not let the strong period grade
229
+ launder the weak format grade — they are separate claims about the same
230
+ series and the file keeps them separate on purpose.
231
+ THE 2012 REFRESH IS A BASE CHANGE, NOT A SERIES BOUNDARY. Secondary
232
+ sources place a redesign at 2012 (reported as introducing bilingual
233
+ elements) with the SAME three-letter/three-numeral arrangement either side
234
+ of it. Base and format have different lifetimes here as they do in Oregon,
235
+ British Columbia and Alberta, so it is recorded as a design note rather
236
+ than minted as a series — the § 2.3 test again.
237
+ sources:
238
+ - "https://news.gov.mb.ca/news/index.html?item=22982&posted=1997-06-13 # first issue June 1997, the Aug 1997-July 1998 rollout window, the trees/water/wheat imagery, the reflectorized coating, the two-plate return"
239
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Manitoba # FINDING AID (PRD-PLATES §4 Wikipedia row): the ABC 123 arrangement, the I/O/Q exclusion, the reported 2012 refresh, 'Friendly Manitoba'; accessed 2026-08-02"
240
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # s. 60(1): the design, colour and material are the registrar's"
241
+
242
+ - id: ca-mb-standard-1983
243
+ class: standard
244
+ categories: [car, van, truck, bus]
245
+ period: { start: 1983, end: 1998 }
246
+ period_evidence: agency-stated-date
247
+ matching: strict
248
+ format:
249
+ pattern: "999 LLL"
250
+ regex: '\A\d{3}[- ]?[A-Z]{3}\z'
251
+ evidence: secondary
252
+ design:
253
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
254
+ foreground: "#000000"
255
+ colour_note: >-
256
+ PRIMARY, AND UNUSUALLY SPECIFIC FOR A COLOUR CLAIM. The 1997 release
257
+ describes what was being replaced as "the black or black and red on
258
+ white licence plates first issued in 1983" — so the predecessor base was
259
+ black-on-white with a red element, from the government's own pen. That
260
+ is a better colour source than this programme normally gets for a
261
+ superseded series.
262
+ legend_bottom: "Friendly"
263
+ design_basis: primary-colours-secondary-legend
264
+ rear_differs: false
265
+ notes: >-
266
+ THE "ONE SERIES BACK", WITH A GOVERNMENT-DATED START — the only one in
267
+ this seven-file wave. "first issued in 1983", stated by the Province of
268
+ Manitoba in 1997 while replacing them. The END is the far edge of the
269
+ 1997-98 rollout window: the release has old and new plates coexisting
270
+ until 31 July 1998, so `end: 1998` is the honest close and the overlap
271
+ with ca-mb-standard is REAL and sourced, not an artefact.
272
+ The numerals-first arrangement is secondary, as in the successor series.
273
+ Manitoba ran one plate per vehicle throughout this series (the 1997
274
+ release's word is "returns" to two plates), so a 1983-97 Manitoba vehicle
275
+ is a rear-plate-only vehicle.
276
+ sources:
277
+ - "https://news.gov.mb.ca/news/index.html?item=22982&posted=1997-06-13 # 'first issued in 1983'; the black / black-and-red on white description; the coexistence window"
278
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Manitoba # FINDING AID: the 123 ABC arrangement and the 'Friendly' slogan for this window; accessed 2026-08-02"
279
+
280
+ # =========================================================================
281
+ # THE STATUTORY SPECIALTY PLATES. Three sections, three Acts, three dates.
282
+ # =========================================================================
283
+ - id: ca-mb-support-our-troops
284
+ class: specialty
285
+ categories: [car, van, truck]
286
+ period: { start: 2014 }
287
+ period_evidence: enabling-statute
288
+ matching: recall-only
289
+ format:
290
+ pattern: "LLL 999"
291
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
292
+ evidence: statute-for-content-only
293
+ design:
294
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
295
+ foreground: "#003C71"
296
+ legend: "SUPPORT OUR TROOPS"
297
+ emblem: { present: true, rendered: placeholder, description: "'a graphic symbolic of the message conveyed by those words' (s. 60.1(1)(b))" }
298
+ design_basis: statute
299
+ notes: >-
300
+ s. 60.1(1), verbatim: "Upon receipt of an organization's application that
301
+ is acceptable to the registrar, the registrar SHALL make available a
302
+ specialty number plate that (a) includes the words 'SUPPORT OUR TROOPS' in
303
+ capital letters; (b) bears a graphic symbolic of the message conveyed by
304
+ those words; and (c) includes any other depiction or design as may be
305
+ determined by the registrar." Enacted by S.M. 2014, c. 38, s. 3 — hence
306
+ `enabling-statute` and 2014, a real creation date rather than an upper
307
+ bound. s. 60.1(2) lets the minister direct all or part of the charges to a
308
+ named registered charity. The SERIAL grammar is not stated anywhere, so
309
+ the series is `recall-only`; what IS statutory is the legend and the
310
+ requirement of a symbolic graphic.
311
+ sources:
312
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # s. 60.1(1)-(2), enactment note S.M. 2014, c. 38, s. 3"
313
+
314
+ - id: ca-mb-mmiwg2s
315
+ class: specialty
316
+ categories: [car, van, truck]
317
+ period: { start: 2023 }
318
+ period_evidence: enabling-statute
319
+ matching: recall-only
320
+ format:
321
+ pattern: "LLL 999"
322
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
323
+ evidence: statute-for-content-only
324
+ design:
325
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
326
+ foreground: "#003C71"
327
+ legend: "MMIWG2S"
328
+ emblem: { present: true, rendered: placeholder, description: "'either a red hand or a red dress' (s. 60.2(2)(b))" }
329
+ design_basis: statute
330
+ notes: >-
331
+ THE MOST PRESCRIPTIVE PLATE-DESIGN PROVISION IN THIS ENTIRE SEVEN-FILE
332
+ WAVE, AND IT IS ABOUT A SOCIAL MOVEMENT'S SYMBOLS. s. 60.2(1) defines the
333
+ abbreviation: "In this section, the abbreviation 'MMIWG2S' means missing
334
+ and murdered Indigenous women, girls and two-spirit people." s. 60.2(2):
335
+ the registrar "shall make available a specialty number plate that (a)
336
+ includes 'MMIWG2S' in capital letters; and (b) depicts EITHER A RED HAND
337
+ OR A RED DRESS." s. 60.2(3) directs the whole of the charges, after
338
+ consultation with families' representatives, to a registered charity
339
+ benefiting those families. Enacted S.M. 2023, c. 33, s. 3. Compare every
340
+ other design provision in this wave — "the colour and style the Registrar
341
+ thinks fit" (NWT reg. 11(1)), "the type and colour approved by the
342
+ Minister" (AB s. 63(2)), "a material and design determined by [ICBC]"
343
+ (BC s. 12(1)(b)) — and note that Manitoba's legislature specified the
344
+ GRAPHIC. That is why this series' design carries `design_basis: statute`
345
+ where almost nothing else in the wave can.
346
+ sources:
347
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # s. 60.2(1)-(3), enactment note S.M. 2023, c. 33, s. 3"
348
+
349
+ - id: ca-mb-parks
350
+ class: specialty
351
+ categories: [car, van, truck]
352
+ period: { start: 2024 }
353
+ period_evidence: enabling-statute
354
+ matching: recall-only
355
+ format:
356
+ pattern: "LLL 999"
357
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
358
+ evidence: statute-for-content-only
359
+ design:
360
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
361
+ foreground: "#003C71"
362
+ legend: "Manitoba Parks"
363
+ emblem: { present: true, rendered: placeholder, description: "'a graphic symbolic of the message conveyed by those words' (s. 60.3(1)(b))" }
364
+ design_basis: statute
365
+ notes: >-
366
+ s. 60.3(1): the registrar "shall make available a specialty number plate
367
+ that (a) includes the words 'Manitoba Parks'; (b) bears a graphic symbolic
368
+ of the message conveyed by those words; and (c) includes any other
369
+ depiction, design or words as may be determined by the registrar."
370
+ s. 60.3(2) directs the charges to "a registered charity that supports
371
+ projects in provincial parks". Enacted S.M. 2024, c. 28, s. 3 — the newest
372
+ series in this wave after the 2025 British Columbia recut and the 2025
373
+ Nunavut bear. Note the mirror with British Columbia: two provinces, two
374
+ parks plate programmes, reached by opposite routes — Manitoba by a
375
+ statutory section, British Columbia by an ICBC/Ministry partnership with
376
+ no statutory hook (plates/ca-bc.yml, ca-bc-parks-2017).
377
+ NOTE ALSO the lower-case "Parks": s. 60.3(1)(a) requires the words
378
+ "Manitoba Parks" without the capital-letters instruction that ss. 60.1 and
379
+ 60.2 both carry. Quoted as written.
380
+ sources:
381
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # s. 60.3(1)-(2), enactment note S.M. 2024, c. 28, s. 3"
382
+
383
+ # =========================================================================
384
+ # THE BUSINESS AND COLLECTOR PLATE TYPES.
385
+ # =========================================================================
386
+ - id: ca-mb-dealer
387
+ class: dealer
388
+ categories: [car, van, truck, trailer]
389
+ period: { start: 2018 }
390
+ period_evidence: instrument-in-force-upper-bound
391
+ matching: recall-only
392
+ format:
393
+ pattern: "LL 9999"
394
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
395
+ evidence: none-published
396
+ design: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }, foreground: "#003C71", design_basis: secondary }
397
+ notes: >-
398
+ s. 64 creates dealers' number plates; s. 35(2) is the operative deeming
399
+ rule: "A registration card issued to a dealer in relation to dealers'
400
+ number plates is deemed to have been issued for a vehicle when (a) the
401
+ vehicle displays, in accordance with the regulations, the quantity and
402
+ type of dealers' number plates that the regulations prescribe for use on
403
+ vehicles of its registration class; and (b) the dealers' number plates on
404
+ the vehicle display its registration card number and, in accordance with
405
+ the regulations, stickers showing that the registration is valid." Note
406
+ what is MISSING from (b) against the ordinary rule in s. 34(1)(a)(iii):
407
+ no registration-CLASS sticker. A dealer plate carries a validation sticker
408
+ only. `period.start: 2018` is the section's enactment note (S.M. 2018,
409
+ c. 10, Sch. C, s. 15) and is an UPPER BOUND — Manitoba plainly issued
410
+ dealer plates before 2018; that Act was a re-enactment.
411
+ sources:
412
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # ss. 35(2), 64; enactment note S.M. 2018, c. 10, Sch. C, s. 15"
413
+
414
+ - id: ca-mb-repairer
415
+ class: dealer
416
+ categories: [car, van, truck]
417
+ period: { start: 2018 }
418
+ period_evidence: instrument-in-force-upper-bound
419
+ matching: recall-only
420
+ format:
421
+ pattern: "LL 9999"
422
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
423
+ evidence: none-published
424
+ design: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }, foreground: "#003C71", design_basis: secondary }
425
+ notes: >-
426
+ THE TYPE ALMOST NOBODY ELSE HAS. s. 65 creates REPAIRERS' number plates as
427
+ a statutory type distinct from dealers', with its own deeming rule in
428
+ s. 35(3) in identical terms to the dealer rule. A garage moving a
429
+ customer's vehicle under its own plate is common practice everywhere; a
430
+ legislature giving it its own plate TYPE, separate from the dealer plate,
431
+ is not. Filed under `class: dealer` because _meta/classes.yml defines that
432
+ class as "trade/garage plates bound to a business, not a vehicle", which
433
+ fits exactly and covers both — distinguished from ca-mb-dealer by these
434
+ notes and by the statutory section, as the lint's overlap rule requires.
435
+ Same 2018 upper-bound reasoning as ca-mb-dealer.
436
+ sources:
437
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # ss. 35(3), 65; enactment note S.M. 2018, c. 10, Sch. C, s. 15"
438
+
439
+ - id: ca-mb-collector
440
+ class: historic
441
+ categories: [car, van, truck]
442
+ period: { start: 2018 }
443
+ period_evidence: instrument-in-force-upper-bound
444
+ matching: recall-only
445
+ format:
446
+ pattern: "999 999"
447
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
448
+ evidence: none-published
449
+ design: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }, foreground: "#003C71", design_basis: secondary }
450
+ notes: >-
451
+ s. 66 governs collector number plates and is written almost entirely as
452
+ PROHIBITIONS, which is itself the interesting part: "(1) The registrar may
453
+ issue a collector number plate only to a person prescribed by regulation.
454
+ (2) No person shall attach a collector number plate to a motor vehicle
455
+ except when permitted to do so by the regulations. (3) No person shall
456
+ attach a collector number plate to a motor vehicle that has the status of
457
+ a salvageable motor vehicle unless the motor vehicle (a) has been
458
+ repaired; and (b) is being driven in a road test in accordance with the
459
+ regulations. (4) No person shall attach a collector number plate to a
460
+ motor vehicle for the purpose of using it to transport persons or property
461
+ for compensation." Note (3): Manitoba contemplates a collector plate on a
462
+ REPAIRED WRITE-OFF under road test — a direct hook into the written-off
463
+ motor vehicle regime that follows in the same Act. Eligibility is entirely
464
+ in unread regulations (s. 66(1)), which is the same gap recorded at
465
+ instrument.regulation. s. 35(4) supplies the deeming rule and, unlike the
466
+ dealer and repairer rules, DOES require a registration-class sticker.
467
+ sources:
468
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # ss. 35(4), 66(1)-(5); enactment note S.M. 2018, c. 10, Sch. C, s. 15"
469
+
470
+ - id: ca-mb-personalized
471
+ class: personalized
472
+ categories: [car, van, truck, motorcycle]
473
+ period: { start: 1997 }
474
+ period_evidence: agency-stated-upper-bound
475
+ matching: recall-only
476
+ format:
477
+ pattern: "LLLLLL"
478
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9])*\z'
479
+ evidence: statute-for-permissibility-only
480
+ design: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }, foreground: "#003C71", design_basis: secondary }
481
+ notes: >-
482
+ THE STATUTORY HOOK IS s. 60(1)'s "or WORDS": "a number plate may consist
483
+ of numbers, letters or words". `period.start: 1997` is an UPPER BOUND from
484
+ the 1997 news release, which describes the programme as already running
485
+ and being carried across the re-plating: "Manitoba Highways and
486
+ Transportation has contacted current holders of personalized licence
487
+ plates to determine if they wish to renew their slogan for a $50 fee.
488
+ Personalized plate holders who did not receive a renewal notice may contact
489
+ the Division of Driver and Vehicle Licensing Personalized Licence Plate
490
+ Section." The release also records the 1997-98 recycling of lapsed
491
+ slogans: "Slogans not renewed by Aug. 1, 1998, will be made available to
492
+ the general public for a fee of $100." Manitoba's own word for a
493
+ personalized combination is a SLOGAN, which is a nice tell that s. 60(1)'s
494
+ "words" branch is the one being exercised. No character count, alphabet or
495
+ refusal-grounds list was reached (MPI's pages 404'd), so the regex is an
496
+ unbounded catch-all and the series is recall-only.
497
+ sources:
498
+ - "https://news.gov.mb.ca/news/index.html?item=22982&posted=1997-06-13 # the programme in existence in 1997, the $50 renewal, the $100 release of lapsed slogans, the 'slogan' terminology"
499
+ - "https://web2.gov.mb.ca/laws/statutes/ccsm/d104.php # s. 60(1) 'numbers, letters or words'"