vehicles 0.6.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 (186) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +274 -0
  4. data/README.md +55 -10
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +5 -4
  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/fr-departements.yml +191 -0
  14. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  15. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  16. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  17. data/data/plates/_decode/hr-cities.yml +315 -0
  18. data/data/plates/_decode/ie-counties.yml +227 -0
  19. data/data/plates/_decode/in-state-codes.yml +169 -0
  20. data/data/plates/_decode/is-districts-1938.yml +116 -0
  21. data/data/plates/_decode/it-provinces.yml +348 -0
  22. data/data/plates/_decode/jp-office-marks.yml +960 -0
  23. data/data/plates/_decode/jp-use-marks.yml +205 -0
  24. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  25. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  26. data/data/plates/_decode/lu-series-order.yml +638 -0
  27. data/data/plates/_decode/mx-entity-series.yml +380 -0
  28. data/data/plates/_decode/my-index-marks.yml +271 -0
  29. data/data/plates/_decode/no-counties-1913.yml +148 -0
  30. data/data/plates/_decode/no-districts.yml +901 -0
  31. data/data/plates/_decode/pl-powiats.yml +567 -0
  32. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  33. data/data/plates/_decode/ro-counties.yml +213 -0
  34. data/data/plates/_decode/se-diplomatic.yml +220 -0
  35. data/data/plates/_decode/si-regions.yml +123 -0
  36. data/data/plates/_decode/sk-districts.yml +314 -0
  37. data/data/plates/_decode/th-registration-elements.yml +208 -0
  38. data/data/plates/_decode/ua-regions.yml +393 -0
  39. data/data/plates/_decode/za-licence-marks.yml +215 -0
  40. data/data/plates/_meta/classes.yml +1 -0
  41. data/data/plates/_meta/separators.yml +102 -0
  42. data/data/plates/ad.yml +961 -0
  43. data/data/plates/ar.yml +762 -0
  44. data/data/plates/at.yml +1424 -0
  45. data/data/plates/au-act.yml +472 -0
  46. data/data/plates/au-nsw.yml +282 -0
  47. data/data/plates/au-nt.yml +431 -0
  48. data/data/plates/au-qld.yml +272 -0
  49. data/data/plates/au-sa.yml +248 -0
  50. data/data/plates/au-tas.yml +302 -0
  51. data/data/plates/au-vic.yml +215 -0
  52. data/data/plates/au-wa.yml +309 -0
  53. data/data/plates/be.yml +1840 -0
  54. data/data/plates/br.yml +1152 -0
  55. data/data/plates/ca-ab.yml +430 -0
  56. data/data/plates/ca-bc.yml +697 -0
  57. data/data/plates/ca-mb.yml +499 -0
  58. data/data/plates/ca-nb.yml +537 -0
  59. data/data/plates/ca-nl.yml +743 -0
  60. data/data/plates/ca-ns.yml +808 -0
  61. data/data/plates/ca-nt.yml +610 -0
  62. data/data/plates/ca-nu.yml +280 -0
  63. data/data/plates/ca-on.yml +881 -0
  64. data/data/plates/ca-pe.yml +592 -0
  65. data/data/plates/ca-qc.yml +1036 -0
  66. data/data/plates/ca-sk.yml +256 -0
  67. data/data/plates/ca-yt.yml +656 -0
  68. data/data/plates/ch.yml +1273 -0
  69. data/data/plates/cn.yml +1431 -0
  70. data/data/plates/cy.yml +688 -0
  71. data/data/plates/cz.yml +1179 -0
  72. data/data/plates/de.yml +553 -118
  73. data/data/plates/dk.yml +1647 -0
  74. data/data/plates/ee.yml +1275 -0
  75. data/data/plates/es.yml +228 -32
  76. data/data/plates/fi.yml +1271 -0
  77. data/data/plates/fr.yml +1265 -0
  78. data/data/plates/gb.yml +1188 -0
  79. data/data/plates/gr.yml +721 -0
  80. data/data/plates/hr.yml +860 -0
  81. data/data/plates/hu.yml +959 -0
  82. data/data/plates/ie.yml +775 -0
  83. data/data/plates/in.yml +1172 -0
  84. data/data/plates/is.yml +667 -0
  85. data/data/plates/it.yml +1317 -0
  86. data/data/plates/jp.yml +3650 -0
  87. data/data/plates/kr.yml +1375 -0
  88. data/data/plates/li.yml +1010 -0
  89. data/data/plates/lt.yml +879 -0
  90. data/data/plates/lu.yml +842 -0
  91. data/data/plates/lv.yml +924 -0
  92. data/data/plates/mc.yml +1024 -0
  93. data/data/plates/mt.yml +854 -0
  94. data/data/plates/mx.yml +1372 -0
  95. data/data/plates/my.yml +685 -0
  96. data/data/plates/nl.yml +44 -0
  97. data/data/plates/no.yml +1018 -0
  98. data/data/plates/nz.yml +1699 -0
  99. data/data/plates/pl.yml +1296 -0
  100. data/data/plates/pt.yml +847 -0
  101. data/data/plates/ro.yml +785 -0
  102. data/data/plates/se.yml +1091 -0
  103. data/data/plates/si.yml +1105 -0
  104. data/data/plates/sk.yml +1439 -0
  105. data/data/plates/sm.yml +1119 -0
  106. data/data/plates/th.yml +1150 -0
  107. data/data/plates/ua.yml +1672 -0
  108. data/data/plates/us-ak.yml +763 -0
  109. data/data/plates/us-al.yml +457 -0
  110. data/data/plates/us-ar.yml +427 -0
  111. data/data/plates/us-as.yml +454 -0
  112. data/data/plates/us-az.yml +430 -0
  113. data/data/plates/us-ca.yml +892 -0
  114. data/data/plates/us-co.yml +452 -0
  115. data/data/plates/us-ct.yml +427 -0
  116. data/data/plates/us-dc.yml +614 -0
  117. data/data/plates/us-de.yml +551 -0
  118. data/data/plates/us-fl.yml +319 -96
  119. data/data/plates/us-ga.yml +644 -0
  120. data/data/plates/us-gu.yml +658 -0
  121. data/data/plates/us-hi.yml +585 -0
  122. data/data/plates/us-ia.yml +438 -0
  123. data/data/plates/us-id.yml +531 -0
  124. data/data/plates/us-il.yml +516 -0
  125. data/data/plates/us-in.yml +324 -0
  126. data/data/plates/us-ks.yml +351 -0
  127. data/data/plates/us-ky.yml +770 -0
  128. data/data/plates/us-la.yml +568 -0
  129. data/data/plates/us-ma.yml +379 -0
  130. data/data/plates/us-md.yml +536 -0
  131. data/data/plates/us-me.yml +445 -0
  132. data/data/plates/us-mi.yml +408 -0
  133. data/data/plates/us-mn.yml +411 -0
  134. data/data/plates/us-mo.yml +356 -0
  135. data/data/plates/us-mp.yml +402 -0
  136. data/data/plates/us-ms.yml +432 -0
  137. data/data/plates/us-mt.yml +619 -0
  138. data/data/plates/us-nc.yml +602 -0
  139. data/data/plates/us-nd.yml +419 -0
  140. data/data/plates/us-ne.yml +483 -0
  141. data/data/plates/us-nh.yml +394 -0
  142. data/data/plates/us-nj.yml +547 -0
  143. data/data/plates/us-nm.yml +574 -0
  144. data/data/plates/us-nv.yml +655 -0
  145. data/data/plates/us-ny.yml +592 -0
  146. data/data/plates/us-oh.yml +404 -0
  147. data/data/plates/us-ok.yml +513 -0
  148. data/data/plates/us-or.yml +392 -0
  149. data/data/plates/us-pa.yml +506 -0
  150. data/data/plates/us-pr.yml +507 -0
  151. data/data/plates/us-ri.yml +445 -0
  152. data/data/plates/us-sc.yml +605 -0
  153. data/data/plates/us-sd.yml +428 -0
  154. data/data/plates/us-tn.yml +471 -0
  155. data/data/plates/us-tx.yml +535 -0
  156. data/data/plates/us-ut.yml +384 -0
  157. data/data/plates/us-va.yml +567 -0
  158. data/data/plates/us-vi.yml +489 -0
  159. data/data/plates/us-vt.yml +458 -0
  160. data/data/plates/us-wa.yml +484 -0
  161. data/data/plates/us-wi.yml +509 -0
  162. data/data/plates/us-wv.yml +446 -0
  163. data/data/plates/us-wy.yml +523 -0
  164. data/data/plates/va.yml +604 -0
  165. data/data/plates/za.yml +1141 -0
  166. data/data/vehicles.json +160653 -105090
  167. data/lib/vehicles/configuration.rb +17 -3
  168. data/lib/vehicles/dataset.rb +73 -18
  169. data/lib/vehicles/fuzzy.rb +115 -0
  170. data/lib/vehicles/http.rb +48 -0
  171. data/lib/vehicles/make.rb +36 -6
  172. data/lib/vehicles/mcp_server.rb +5 -5
  173. data/lib/vehicles/model.rb +21 -2
  174. data/lib/vehicles/plates/series.rb +172 -18
  175. data/lib/vehicles/plates/template_fill.rb +188 -0
  176. data/lib/vehicles/plates/templates.rb +162 -0
  177. data/lib/vehicles/plates.rb +12 -0
  178. data/lib/vehicles/providers/hosted_provider.rb +28 -55
  179. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  180. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  181. data/lib/vehicles/version.rb +1 -1
  182. data/lib/vehicles.rb +32 -16
  183. data/rakelib/data_refresh.rake +109 -0
  184. data/rakelib/plates_refresh.rake +29 -0
  185. data/sig/vehicles.rbs +18 -0
  186. metadata +164 -2
@@ -0,0 +1,309 @@
1
+ # plates/au-wa.yml — Western Australia (PRD-PLATES gate L3, Australia).
2
+ #
3
+ # WESTERN AUSTRALIA HAS THE BEST START DATE IN THE AUSTRALIAN WAVE, and it is
4
+ # not from a statute — it is from the Transport Minister's own dated media
5
+ # statement of 5 July 1997, published on the Government of Western Australia's
6
+ # media-statements service, which describes the incoming general-issue series
7
+ # in the department's own words, gives its first combination, and says when it
8
+ # entered circulation:
9
+ #
10
+ # "Transport Minister Eric Charlton today unveiled Western Australia's new
11
+ # generation of vehicle licence plates, which will come into general
12
+ # circulation from mid-July." ... "The new general purpose plates contain
13
+ # seven characters, commencing with the characters 1AAA 000. It will take
14
+ # until the year 2137 to reach the number 1ZZZ 999."
15
+ #
16
+ # That single paragraph fixes the format, the first combination, the month of
17
+ # first issue and the design intent (a series sized for 140 years, which is why
18
+ # WA has not needed a changeover since). It is quoted verbatim below.
19
+ #
20
+ # THE SECOND PRIMARY IS THE DEPARTMENT'S OWN CURRENT PAGES, which are unusual
21
+ # among Australian transport sites in publishing PLATE DIMENSIONS IN
22
+ # MILLIMETRES for four plate types. Those figures are the anchor for the
23
+ # "372 x 134 mm Australian plate" claim that every other file in this wave
24
+ # leans on — the widely repeated "372 x 135 mm Australia/Pacific standard" has
25
+ # no citation anywhere, and WA's departmental figure is what a real source
26
+ # looks like.
27
+ #
28
+ # WHAT IS DELIBERATELY MISSING: the pre-1997 general issue. The Minister's
29
+ # statement refers to "the current nine series plates about to expire" without
30
+ # describing them, and no departmental page dates or describes the predecessor.
31
+ # Inventing a shape for it would be exactly the disease this programme exists
32
+ # to avoid, so it is a RECORDED GAP and not a series (see gaps, below).
33
+ jurisdiction: au-wa
34
+ authority:
35
+ name: Department of Transport and Major Infrastructure (Driver and Vehicle Services), Western Australia
36
+ url: "https://www.transport.wa.gov.au/licensing/plates/standard/state"
37
+ authority_note: >-
38
+ Named in the department's own current pages as "DTMI" with Driver and Vehicle
39
+ Services (DVS) as the operational arm; the 1997 media statement names the
40
+ predecessor portfolio simply as "Transport". The Director General is the
41
+ owner of issued plates: "All District series plates remain the property of the
42
+ Director General. It is an offence for a person to fail to return the number
43
+ plates on demand."
44
+ binding: vehicle
45
+ instrument:
46
+ citation: "Road Traffic (Vehicles) Act 2012 (WA) and the Road Traffic (Vehicles) Regulations 2014 (WA)"
47
+ access_note: >-
48
+ NOT READ IN THIS PASS. legislation.wa.gov.au was reachable but its URL
49
+ scheme changed ("The following page law_s5195.html is no longer available on
50
+ this website. Due to essential system and security upgrades, links to some
51
+ pages may have changed") and the replacement identifier for the vehicles
52
+ regulations was not resolved before the research budget for this
53
+ jurisdiction was spent. NOT ONE WORD of WA legislation is quoted here.
54
+ Everything below is departmental or ministerial — which for the claims made
55
+ (format, first issue, dimensions, colours, plate classes) is the better
56
+ source anyway, since Australian registration regulations carry no serial
57
+ grammar. The verifier should still read the Regulations for the display
58
+ rules, which this file therefore does NOT state (recorded gap).
59
+ licence: "Government of Western Australia material; facts extracted, quotations marked verbatim (PRD-PLATES §4)"
60
+
61
+ national_schemes:
62
+ heavy_vehicle: >-
63
+ Heavy vehicles over 4.5 t GVM are registered under the Heavy Vehicle
64
+ National Law as applied in Western Australia and carry a NATIONAL HEAVY
65
+ VEHICLE NUMBER PLATE issued by the State registrar on the national pattern.
66
+ Mechanism, not a series: the national serial grammar was not obtained
67
+ (recorded gap, L4). Three State instruments name the object in those words
68
+ — Qld reg 2021 s 117(2)(c), Tas reg 2021 reg 88(6), NT Motor Vehicles
69
+ Regulations 1977 reg 10.
70
+ light_vehicle_standards: >-
71
+ Australian Light Vehicle Standards Rules 2015 (national MODEL law,
72
+ Parliamentary Counsel's Committee, consolidated 22 March 2019) rule 86,
73
+ verbatim: "At least 1 number plate light must be fitted to the rear of a
74
+ vehicle." The Rules "do not, by themselves, have any legal effect" and
75
+ prescribe no plate dimension, colour or serial grammar.
76
+ source: "https://www.pcc.gov.au/uniform/Australian%20Light%20Vehicle%20Standards%20Rules%202015%20-%2022%20March%202019.pdf # ALVSR 2015 rule 86 and the model-law disclaimer, accessed 2026-08-02"
77
+
78
+ series:
79
+
80
+ # =========================================================================
81
+ # STATE (ORDINARY) SERIES — WA's own name for its general issue.
82
+ # =========================================================================
83
+ - id: au-wa-state-series
84
+ class: standard
85
+ categories: [car, van, truck, bus, motorcycle, trailer]
86
+ period: { start: 1997 } # "will come into general circulation from
87
+ # mid-July" — Minister, 5 July 1997.
88
+ period_evidence: authority-announcement
89
+ matching: strict
90
+ format:
91
+ pattern: "9LLL 999"
92
+ regex: '\A\d[A-Z]{3} ?\d{3}\z'
93
+ evidence: authority
94
+ charset:
95
+ notes: >-
96
+ Transport Minister Eric Charlton, media statement of 5 July 1997,
97
+ verbatim: "The new general purpose plates contain seven characters,
98
+ commencing with the characters 1AAA 000. It will take until the year
99
+ 2137 to reach the number 1ZZZ 999." Seven characters counted the WA
100
+ way (leading numeral + three letters + three numerals = 7). NO LETTER
101
+ EXCLUSIONS ARE STATED anywhere by the department; the enthusiast claim
102
+ that WA skips certain letter blocks (the reported absence of an
103
+ F-series is the standard story) is UNSOURCED here and deliberately not
104
+ encoded, so there is no `regex_strict`.
105
+ progression: >-
106
+ Ascending, and the department says so in terms: "The plates are issued
107
+ for general use and are manufactured on demand in large quantities in an
108
+ ascending alpha/numeric series." The 1997 statement's own arithmetic —
109
+ 1AAA 000 in 1997 to 1ZZZ 999 in 2137 — is the reason WA has run ONE
110
+ general-issue series for nearly thirty years while Victoria and
111
+ Queensland each changed over: the series was deliberately sized for 140
112
+ years. The Minister's stated motive, verbatim: "Until now we have been
113
+ getting just four or five years from each licence plate series and with
114
+ the current nine series plates about to expire, Transport was keen to
115
+ develop something which will provide long-term consistency."
116
+ allocation_rule: "the department, verbatim: 'You cannot order or choose specific state series number plates.' — general issue is assigned, never selected; selection is the optional/personalised route"
117
+ design:
118
+ plate: { w: 372, h: 134, unit: mm }
119
+ plate_variants:
120
+ - { for: motorcycle, w: 254, h: 100, unit: mm, note: "full-size motorcycle plate" }
121
+ - { for: motorcycle, w: 190, h: 100, unit: mm, note: "small motorcycle plate" }
122
+ - { for: auxiliary, w: 253, h: 99, unit: mm, note: "auxiliary (bike-rack) plate" }
123
+ plate_dimension_note: >-
124
+ Department of Transport, verbatim: "Standard plates are made of aluminium
125
+ and have the following dimensions: Motor vehicle plate 372 mm x 134 mm.
126
+ Motorcycle plate: Full-size plate 254 mm x 100 mm. Small plate 190 mm x
127
+ 100 mm. Auxiliary plate 253 mm x 99 mm." FOLKLORE CORRECTED: the
128
+ "372 x 135 mm Australia/Pacific plate standard" that circulates in
129
+ plate-taxonomy writing is uncited everywhere it appears; WA's registrar
130
+ says 134 mm, and the NT's says 133 mm. There is no national standard to
131
+ round to, because there is no national standard.
132
+ material: "aluminium (departmental page, verbatim)"
133
+ colour_note: >-
134
+ The 1997 statement, verbatim: "They are blue and white and carry a
135
+ marketing logo developed for the WA Tourism Commission." The department
136
+ today calls this the "Brand WA format (blue and white plates)" and
137
+ distinguishes it from the older colourways, verbatim: "Both state and
138
+ district series plates issued prior to the Brand WA format (blue and
139
+ white plates) can be remade in any of the below colour combinations;
140
+ Black on white. Black on yellow. Brand WA format." NO HEXES ARE
141
+ RECORDED — the department names colours and never specifies them.
142
+ remake_rule: "the department, verbatim: \"'Brand WA' state series plates can only be remade in the same 'Brand WA' format.\" — so the older colourways are available for older plates only, which makes colour a function of ISSUE DATE, not of series"
143
+ commemorative_note: "the 1997 statement, verbatim: 'The Minister also unveiled the design for the first 100 plates in the series which will be limited edition and carry a special commemorative badge.' The first 100 combinations of this series were therefore a distinct physical product; whether that badge survives on those plates is unverified and no sub-series is authored"
144
+ rear_differs: false
145
+ plate_lifecycle:
146
+ retention: "physically retained for 90 days from the date of retention, then destroyed; the electronic record of retained ownership survives 365 days (departmental page)"
147
+ transfer: "state series plates may be swapped between two vehicles owned by the same person, or transferred to an 'immediate' family member (spouse, parent, child or sibling), on Form E45"
148
+ region_encoding: none
149
+ sources:
150
+ - "https://web.archive.org/web/20160305010058/https://www.mediastatements.wa.gov.au/Pages/Court/1997/07/Unveiling-of-new-generation-of-vehicle-licence-plates.aspx # 'Unveiling of new generation of vehicle licence plates', Government of Western Australia media statement, Transport Minister Eric Charlton, 5 July 1997 (read via the Internet Archive, accessed 2026-08-02): mid-July 1997 general circulation, the seven-character 1AAA 000 to 1ZZZ 999 series and its 2137 horizon, the four-to-five-year life of previous series, blue and white with the WA Tourism Commission logo, the first-100 commemorative badge, and the manufacturer"
151
+ - "https://www.transport.wa.gov.au/licensing/plates/standard/state # Department of Transport 'State (ordinary) plates' (accessed 2026-08-02): 'State series number plates have character configurations set by DVS'; the ascending alpha/numeric manufacture-on-demand rule; the four plate dimensions in millimetres; aluminium; the Brand WA colour rules and the remake restriction; retention and transfer machinery"
152
+ notes: >-
153
+ WESTERN AUSTRALIA'S STATE (ORDINARY) SERIES — the department's own name
154
+ for it, used here as the series id rather than the generic "standard"
155
+ because WA distinguishes STATE, DISTRICT, CORPORATE, CONSULAR and
156
+ GOVERNMENT/COMMERCIAL series by those names on its own pages. `start:
157
+ 1997` is `authority-announcement` and is as good as an Australian plate
158
+ date gets: a Minister, a dated government publication, the first
159
+ combination and the month. The series is still current — the department's
160
+ page describes it in the present tense and its own arithmetic gives it
161
+ another century — so `period.end` is absent. TWO THINGS A VERIFIER SHOULD
162
+ CHASE. First, the pre-1997 series: the Minister names it only as "the
163
+ current nine series plates", which is not a format description, and it is
164
+ a recorded gap rather than a guessed series. Second, the F-series
165
+ question: WA is widely said to have skipped a letter block; if the
166
+ department confirms it, that is a `regex_strict`, and until then the
167
+ absence of one here is deliberate.
168
+
169
+ # =========================================================================
170
+ # ONE SERIES BACK — added in the completion pass. The first pass recorded it
171
+ # as a gap because the Minister names it without describing it; the Wikipedia
172
+ # rule (PRD-PLATES §4, owner override 2026-08-02) permits the description to
173
+ # be taken from the article and tagged, which is strictly better than a gap.
174
+ # =========================================================================
175
+ - id: au-wa-standard-1978
176
+ class: standard
177
+ categories: [car, van, truck, bus]
178
+ period: { start: 1978, end: 1997 }
179
+ period_evidence: secondary-wikipedia
180
+ matching: strict
181
+ format:
182
+ pattern: "9LL 999"
183
+ regex: '\A\d[A-Z]{2} ?\d{3}\z'
184
+ regex_strict: '\A[6-9][A-Z]{2} ?\d{3}\z'
185
+ evidence: secondary
186
+ charset:
187
+ notes: >-
188
+ A LEADING DIGIT RESTRICTED TO 6-9, then two letters, then three
189
+ numerals. Reported: "In October 1978, having exhausted the XAA - XZZ
190
+ series a new series was released commencing at 6AA-000. The format
191
+ used was black on yellow, where the numbers preceding the letters
192
+ ranged between 6 and 9. This series ended at 9MZ-999 and the trailer
193
+ series ended at 9RZ-999." The 6-9 restriction is exactly what
194
+ `regex_strict` is for (PRD-PLATES §2.7): the lint generates every
195
+ digit from `pattern`, so `regex` cannot carry it, and the tier order
196
+ regex_strict ⊆ regex holds by construction here.
197
+ corroboration: >-
198
+ THE MINISTER CORROBORATES THE TOP OF THE RANGE WITHOUT DESCRIBING IT.
199
+ The 5 July 1997 media statement that announces the successor says
200
+ "with the current nine series plates about to expire" — i.e. in 1997
201
+ the general issue was in the 9 block, which is precisely what a
202
+ 6-then-7-then-8-then-9 progression predicts at the end of its life.
203
+ That is a government sentence agreeing with a secondary description
204
+ without repeating it, which is the strongest kind of corroboration
205
+ available for a format nobody official ever wrote down.
206
+ progression: "6AA-000 onward, the leading digit advancing 6 -> 7 -> 8 -> 9 as each block exhausted; reported to have ended at 9MZ-999 (cars) and 9RZ-999 (trailers)"
207
+ design:
208
+ colour_note: >-
209
+ Black characters on a yellow ground, per the secondary description; the
210
+ 1997 media statement describes the SUCCESSOR as "blue and white", which
211
+ implies a change and does not describe what changed from. NO HEX IS
212
+ RECORDED for either colour — WA's Department of Transport publishes no
213
+ colour specification.
214
+ plate: { w: 372, h: 134, unit: mm }
215
+ plate_dimension_note: "the department's own current figure, carried back to this series without independent evidence that the stock size was the same in 1978 — flagged, not asserted"
216
+ rear_differs: false
217
+ region_encoding: none
218
+ reissued_as_nostalgia: >-
219
+ Reported, and a genuinely useful modern fact: "As of February 2025, The
220
+ Department of Transport has now reintroduced the old 6,7,8 & 9 series
221
+ marketed as Nostalgia Series". So a plate matching this series' grammar
222
+ may be a 1978-1997 original OR a 2025-onward remake, and a parse layer
223
+ MUST NOT infer a vintage from the shape alone. The department's Nostalgia
224
+ product page (plateswa.com) was not fetched in this pass (recorded gap).
225
+ sources:
226
+ - "https://web.archive.org/web/20160305010058/https://www.mediastatements.wa.gov.au/Pages/Court/1997/07/Unveiling-of-new-generation-of-vehicle-licence-plates.aspx # Hon Eric Charlton MLC, Minister for Transport (WA), 'Unveiling of new generation of vehicle licence plates', 5 July 1997, archived, accessed 2026-08-02: 'Until now we have been getting just four or five years from each licence plate series and with the current nine series plates about to expire, Transport was keen to develop something which will provide long-term consistency' — the government's own corroboration of the 9 block and of the four-to-five-year series cadence this series ended"
227
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Western_Australia # secondary (CC BY-SA; facts in our expression per the PRD-PLATES §4 Wikipedia rule), accessed 2026-08-02: the October 1978 start at 6AA-000, the 6-9 leading-digit range, the black-on-yellow colours, the 9MZ-999 and 9RZ-999 endings, and the February 2025 Nostalgia reissue. The 1978 sentence is footnoted in the article to a print periodical ('Registration Notes, Fleetline issue 41, December 1978, page 4') which was NOT obtained"
228
+ notes: >-
229
+ WESTERN AUSTRALIA'S PREVIOUS GENERAL ISSUE, 1978-1997, AUTHORED IN THE
230
+ COMPLETION PASS. The first pass of this file deliberately left it out and
231
+ said so ("the Minister names it only as 'the current nine series plates',
232
+ which is not a format description, and it is a recorded gap rather than a
233
+ guessed series"). That was right under a locator-only reading of the
234
+ Wikipedia row of PRD-PLATES §4; under the owner's 2026-08-02 override the
235
+ description may be EXTRACTED provided it is tagged, and a tagged
236
+ description that the Minister's own sentence independently corroborates is
237
+ better data than an empty gap. Both boundaries are secondary: 1978 from
238
+ the article (itself footnoted to a print periodical that was not
239
+ obtained), 1997 from the successor's own government start date, which is
240
+ the firmer of the two. WHAT THIS SERIES BUYS THE PARSE LAYER: a WA string
241
+ with a leading digit and SIX following characters is the current series; a
242
+ leading digit with FIVE following characters is this one — the 1997
243
+ redesign added a character, which the Minister states in terms ("The new
244
+ general purpose plates contain seven characters"). That is a clean,
245
+ government-sourced length discriminator between two eras.
246
+
247
+ # =========================================================================
248
+ # DISTRICT SERIES — the only geographic encoding found in any Australian
249
+ # plate in this wave, and the department describes the mechanism itself.
250
+ # =========================================================================
251
+ - id: au-wa-district-series
252
+ class: standard
253
+ categories: [car, van, truck, motorcycle, trailer]
254
+ period: { start: 1997 } # UPPER BOUND. See notes: the department
255
+ # dates neither the scheme nor its plates;
256
+ # 1997 is the Brand WA colourway boundary
257
+ # its own page draws, not a scheme start.
258
+ period_evidence: instrument-in-force-upper-bound
259
+ matching: recall-only
260
+ format:
261
+ pattern: "LL 999"
262
+ regex: '\A[A-Z]{2} ?[A-Z0-9]{1,5}\z'
263
+ evidence: partial
264
+ charset:
265
+ notes: >-
266
+ THE PREFIX IS SOURCED, THE REST IS NOT. Department of Transport,
267
+ verbatim: "District series plates are manufactured in numerical
268
+ sequence with a District identifier as a prefix. For example, 'MH' for
269
+ Mandurah." So the leading two letters are a DISTRICT CODE and the
270
+ remainder is an ascending sequence — but the department publishes no
271
+ code list and no sequence grammar, so the regex is deliberately wider
272
+ than what is issued and `matching: recall-only` says so (PRD-PLATES
273
+ §2.7). A match means "this could be a WA district plate", never "this
274
+ is a valid one".
275
+ design:
276
+ colour_note: "the department, verbatim: 'The old-style District plates were issued in black characters on either a white or yellow background. Plates are now issued on the blue and white \"Brand WA\" format.' Same three colourways as the state series, same remake rules"
277
+ plate: { w: 372, h: 134, unit: mm }
278
+ eligibility: "the department, verbatim: 'These plates can be issued to motor vehicles, trailers and motorcycles owned by persons who reside in that Shire or District.' — a RESIDENCE test, which is what makes the prefix a real geographic claim rather than decoration"
279
+ region_encoding: >-
280
+ DISTRICT PREFIX, MECHANISM ONLY — NO DECODE TABLE IS AUTHORED. The
281
+ department gives exactly one worked pair ('MH' = Mandurah) and publishes
282
+ no list; Western Australia has some 137 local governments, so a decode
283
+ table built from anything other than a departmental list would be a
284
+ fabrication at scale. This is the honest opposite of the German
285
+ Unterscheidungszeichen table: there, the codes are published in the
286
+ Bundesanzeiger; here, they are not published at all. RECORDED GAP with a
287
+ clear acceptance test — a DVS district-code list, if one exists, becomes
288
+ plates/_decode/au-wa-districts.yml.
289
+ related: "SPECIAL LOCAL AUTHORITY plates are a separate thing the department describes and does not issue: 'Special Local Authority plates may be available in a wider variety of colours and generally include the logo of the local authority/shire which issues the plate ... Prices for Special Local Authority plates are set by the local authority/shire.' Not authored — the issuer is the shire, not DVS, and no format is published"
290
+ sources:
291
+ - "https://www.transport.wa.gov.au/licensing/plates/standard/district # Department of Transport 'District series plates' (accessed 2026-08-02): the district identifier as a prefix with the Mandurah example, numerical-sequence manufacture, the residence eligibility test, the colourway history and remake range, the December 2021 conversion-to-optional-plate scheme, and Special Local Authority plates"
292
+ notes: >-
293
+ WA DISTRICT SERIES — THE ONE GEOGRAPHIC DECODE IN AUSTRALIAN PLATES, AND
294
+ IT IS DELIBERATELY LEFT AS A MECHANISM. The department states the
295
+ mechanism plainly and gives a single example; it publishes no code table.
296
+ PRD-PLATES §2.4's rule is that open-ended or unpublished decodes get a
297
+ mechanism note, not an invented table, and that is what this is. The
298
+ period is an UPPER BOUND for an unusual reason worth stating: the
299
+ department's own page dates nothing except a 2021 administrative change
300
+ ("Eligible District series number plates can be converted to a District
301
+ series optional plate from Monday 13 December 2021"), and the only era
302
+ boundary it draws is the Brand WA colourway, which is the 1997 boundary
303
+ the state series carries. So 1997 here means "this series was running by
304
+ then", not "it started then" — district plates are much older.
305
+ gaps:
306
+ - "The pre-1997 WA general issue: CLOSED IN THE COMPLETION PASS as au-wa-standard-1978, on tagged secondary evidence corroborated by the Minister's 'nine series' sentence. What remains open is a PRIMARY for it — a departmental plate-history page or a Government Gazette notice — and the exact October 1978 date, whose only footnote is a print periodical (Fleetline issue 41) that was not obtained"
307
+ - "The Road Traffic (Vehicles) Regulations 2014 (WA) were not read (legislation.wa.gov.au URL scheme changed) — so this file states NO WA display rules, unlike the Queensland and Tasmanian files"
308
+ - "District codes: mechanism recorded, table absent, acceptance test stated on the series"
309
+ - "Trade plates, consular plates, corporate series plates and government/commercial plates all exist as named departmental products and are NOT authored here — the lean scope for this gate is current general issue plus one back plus core classes, and none of the four has a published grammar"