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,431 @@
1
+ # plates/au-nt.yml — Northern Territory (PRD-PLATES gate L3, Australia).
2
+ #
3
+ # THE NORTHERN TERRITORY IS THE JURISDICTION THAT NEVER JOINED THE 1948 SCHEME,
4
+ # and that is the fact that shapes this file. Every other Australian
5
+ # jurisdiction took a letter block under the Australian Transport Advisory
6
+ # Council's 1948 distribution (quoted from Access Canberra in plates/au-act.yml)
7
+ # and ran a three-letter/three-numeral serial for decades. The NT did not: it
8
+ # ran PURE NUMERALS from 1953 until 2011 — five digits, then six — and only
9
+ # moved to an alphanumeric grammar in 2011, four decades after everyone else.
10
+ # A parse layer therefore has one Australian jurisdiction whose historic plates
11
+ # carry no letters at all, and whose current plates are pinned by a leading C.
12
+ #
13
+ # WHAT IS PRIMARY HERE. The NT Government's own number-plate page (nt.gov.au,
14
+ # read via the Internet Archive because the live host returns HTTP 403 to
15
+ # machine clients) gives the issuing rule, the "right to display" doctrine and
16
+ # the confirmation that a "general issue plate" is the default. That is a real
17
+ # authority publication (PRD-PLATES §4) and it is quoted verbatim below.
18
+ #
19
+ # WHAT IS NOT. THE INSTRUMENT WAS NOT READ IN THIS PASS. legislation.nt.gov.au
20
+ # returned HTTP 404 to every URL form attempted on 2026-08-02 (the portal's
21
+ # consolidated-regulations paths are generated by a JavaScript application), so
22
+ # NOT ONE WORD of the Motor Vehicles Regulations is quoted here. A sibling file
23
+ # in this same wave (plates/au-nsw.yml, national_schemes.heavy_vehicle) reports
24
+ # reading reg 10 of the Motor Vehicles Regulations 1977 (NT), headed "Ownership
25
+ # of national heavy vehicle number plates"; that cross-reference is recorded as
26
+ # a cross-reference and nothing in this file is built on it. Closing the NT
27
+ # instrument is the single largest sourcing gap in this jurisdiction and the
28
+ # first thing a verifier with a browser should do.
29
+ #
30
+ # AND THE FORMATS ARE SECONDARY, ALL OF THEM. No NT government page obtained
31
+ # states the general-issue combination. The formats and their dates come from
32
+ # the English Wikipedia article, mined per the Wikipedia Rule (PRD-PLATES §4,
33
+ # owner override 2026-08-02): its own citations were chased — the two NT
34
+ # Government newsroom media releases it cites are dead, and archive.today
35
+ # rate-limited the request (HTTP 429) on 2026-08-02 — so every such fact carries
36
+ # `period_evidence: secondary-wikipedia` plus the article URL, which is the
37
+ # reversibility guarantee that rule exists for.
38
+ #
39
+ # THE SEPARATOR IS A DIAMOND AND WE DO NOT WRITE IT (PRD-PLATES §2.6). NT plates
40
+ # print a diamond between groups (CC♦73♦IQ). U+2666 is neither in the serial
41
+ # alphabet nor in the emitted separator set, so patterns spell the gap as an
42
+ # emitted SPACE and regexes accept it optionally; the glyph is recorded as a
43
+ # design fact and flagged for the _meta/separators.yml owner, together with the
44
+ # only government sentence found anywhere in this wave that touches it (Access
45
+ # Canberra: "A diamond symbol or space counts as a character" — an ACT
46
+ # plate-capacity rule, quoted in plates/au-act.yml).
47
+ jurisdiction: au-nt
48
+ authority:
49
+ name: Motor Vehicle Registry (MVR), for the Registrar of Motor Vehicles (Northern Territory)
50
+ url: "https://nt.gov.au/driving/registration/number-plates-apply-or-transfer-plates"
51
+ binding: vehicle
52
+ binding_note: >-
53
+ THE NT HAS A NAME FOR THE THING OTHER JURISDICTIONS LEAVE IMPLICIT, and it is
54
+ worth carrying into the schema's vocabulary. NT Government, verbatim: "The
55
+ permission to display number plates on your vehicle in the Northern Territory
56
+ (NT) is called the right to display." The right is time-limited and it lapses:
57
+ "You hold the right to display your number plates for 12 months after your
58
+ registration expires. If you don't fit your plates to your registered vehicle
59
+ for more than 12 months, your right to display returns to the MVR and the
60
+ number plates will be available for other customers to order." So an NT
61
+ combination is a LEASE, not a property: it returns to the registry and is
62
+ re-issued to someone else. A consumer treating an NT serial as a permanent
63
+ vehicle identifier will be wrong, and will be wrong in a way that silently
64
+ merges two vehicles' histories.
65
+ issuing_rule:
66
+ quote: >-
67
+ NT Government, verbatim: "All number plates must be approved by the
68
+ Registrar of Motor Vehicles and issued by the MVR. Any other number plates
69
+ are illegal." And: "You will be given a general issue plate unless you want
70
+ to apply for personalised plates."
71
+ what_it_establishes: >-
72
+ Two things this file needs and can get nowhere else: that a distinct
73
+ "general issue" plate class exists and is the default (which is what the
74
+ standard series below stands for), and that the Registrar's approval is
75
+ constitutive — an unapproved plate is not a bad plate, it is an illegal one.
76
+ source: "https://nt.gov.au/driving/registration/number-plates-apply-or-transfer-plates # Northern Territory Government, 'Number plates: apply or transfer plates' (page footer: 'Last updated: 28 November 2017'), read via the Internet Archive on 2026-08-02 because nt.gov.au returns HTTP 403 to non-browser clients"
77
+ instrument:
78
+ citation: "Motor Vehicles Regulations (NT), made under the Motor Vehicles Act 1949 (NT) — the consolidated regulations, cited in this wave as the Motor Vehicles Regulations 1977 (NT)"
79
+ access_note: >-
80
+ NOT READ. legislation.nt.gov.au returned HTTP 404 to both attempted URL
81
+ forms on 2026-08-02 (the portal serves its consolidated regulations through
82
+ a JavaScript application whose document URLs are not derivable), and no
83
+ Internet Archive snapshot of the instrument was reachable. NOTHING in this
84
+ file is attributed to the NT regulations. The wave cross-reference recorded
85
+ in the header (reg 10, "Ownership of national heavy vehicle number plates",
86
+ read by the sibling pass that produced plates/au-nsw.yml) is noted so a
87
+ verifier knows the document is reachable from a browser, and is not relied
88
+ on here.
89
+ expected_content: >-
90
+ Recorded so the verifier knows what to look for and what NOT to hope for: on
91
+ the evidence of every other Australian instrument read in this wave
92
+ (Queensland s 117, the ACT s 49, Tasmania reg 88), the NT regulations will
93
+ give the Registrar's power to assign a distinguishing registration number,
94
+ the number of plates per vehicle class, ownership of plates and the display
95
+ and visibility rules — and will NOT give a serial grammar. The NT format
96
+ gaps below are unlikely to be closed by the instrument; they need an MVR
97
+ publication or a Northern Territory Government Gazette notice.
98
+
99
+ # ---------------------------------------------------------------------------
100
+ # The national layer, recorded once per file in this wave.
101
+ # ---------------------------------------------------------------------------
102
+ national_context:
103
+ atac_1948: >-
104
+ The 1948 Australian Transport Advisory Council distribution of alpha-numeric
105
+ letter blocks among the States and Territories is quoted verbatim from a
106
+ government source (Access Canberra) in plates/au-act.yml. THE NT'S RELATION
107
+ TO IT IS A NEGATIVE ONE and is the most interesting national fact in this
108
+ file: secondary sources report that "The Northern Territory has never fully
109
+ adopted the 1950s three letter, three number Federal scheme" and that the
110
+ block proposed for it (XAA-000 to XZZ-999) was later taken up by Western
111
+ Australia — where it demonstrably was issued (plates/au-wa.yml records the
112
+ X series). That is a secondary claim about a secondary claim and is recorded
113
+ as such, NOT asserted; what is not in dispute is the observable consequence,
114
+ that NT general issue stayed numeric until 2011.
115
+ heavy_vehicles: >-
116
+ Heavy vehicles (over 4.5 t) are registered under the Heavy Vehicle National
117
+ Law as applied locally and carry a "national heavy vehicle number plate"
118
+ issued BY the local registrar — a MECHANISM, not a series. The Queensland
119
+ regulation defines the object in terms (sch 8: "national heavy vehicle
120
+ number plate means a plate designed to be attached to a category 2 vehicle
121
+ to identify the vehicle"; "category 2 vehicle means a vehicle with a GVM,
122
+ GCM or ATM of more than 4.5t"). NO SERIES IS AUTHORED in any file of this
123
+ wave: no source obtained states a distinct national serial grammar
124
+ (recorded gap). Secondary reporting that the NT adopted the national
125
+ heavy-vehicle plate at a particular date rests on a trade-press article
126
+ (bigrigs.com.au, dead, archived) that was not fetched and is not asserted.
127
+ sources:
128
+ - "https://www.legislation.qld.gov.au/view/whole/html/inforce/current/sl-2021-0113 # Transport Operations (Road Use Management-Vehicle Registration) Regulation 2021 (Qld) sch 8, fetched 2026-08-02 — the two national heavy-vehicle definitions quoted above"
129
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (CC BY-SA; facts extracted in our expression per the PRD-PLATES §4 Wikipedia rule, accessed 2026-08-02): the claim that the NT never adopted the three-letter scheme and that its proposed X block went to Western Australia — uncited in the article"
130
+
131
+ # ---------------------------------------------------------------------------
132
+ # Plate stock. AND A DISCREPANCY INSIDE THIS WAVE, RECORDED RATHER THAN HIDDEN.
133
+ # ---------------------------------------------------------------------------
134
+ plate_stock:
135
+ dimensions_not_sourced_here: >-
136
+ NO NT DIMENSION WAS OBTAINED IN THIS PASS, and the gap has a consequence
137
+ that must not be papered over: FOUR SIBLING FILES IN THIS WAVE
138
+ (plates/au-vic.yml, plates/au-qld.yml, plates/au-sa.yml and
139
+ plates/au-tas.yml) cite "plates/au-nt.yml (NT MVR: 372 x 133 mm)" as one of
140
+ the two per-State sources for the cross-State Australian passenger-plate
141
+ size. That figure could NOT be re-sourced here: the NT Government plate page
142
+ was read in full and states no millimetres, and the MVR's fitting-instruction
143
+ subpages were unreachable (the Internet Archive refused the requests on
144
+ 2026-08-02 after serving the parent page). The 372 x 133 mm figure is
145
+ therefore recorded as a WAVE CROSS-REFERENCE AWAITING RE-VERIFICATION, not
146
+ as a fact of this file, and no `design.plate` block below claims NT
147
+ millimetres. VERIFIER ACTION: either re-pin the MVR figure and add it here,
148
+ or correct the four sibling cross-references. Leaving it silently unsourced
149
+ in one file while four others lean on it is exactly the failure mode the
150
+ per-claim citation rule exists to catch.
151
+ what_is_sourced_elsewhere: >-
152
+ For orientation only, and cited in the files that own the claims: the ACT
153
+ Government publishes 372 mm as its standard plate LENGTH (with 317 mm medium
154
+ and 190 mm short); Transport for NSW publishes "Car plate dimensions 317mm x
155
+ 134mm" and "Motorcycle plate dimensions 186mm x 100mm" for its Classic
156
+ Vehicle Scheme plate; WA's Department of Transport publishes 372 x 134 mm.
157
+ None of those is an NT figure.
158
+ group_separator:
159
+ printed_glyph: diamond
160
+ note: >-
161
+ Printed between serial groups. Never written in a pattern or regex here
162
+ (PRD-PLATES §2.6 emits only "-" and " "); patterns spell the gap as a
163
+ SPACE. Flagged for the _meta/separators.yml owner with the ACT agency
164
+ sentence quoted in plates/au-act.yml.
165
+
166
+ series:
167
+
168
+ # =========================================================================
169
+ # CURRENT GENERAL ISSUE — the C series, the NT's first alphanumeric grammar.
170
+ # =========================================================================
171
+ - id: au-nt-standard
172
+ class: standard
173
+ categories: [car, van, truck, bus]
174
+ period: { start: 2011 } # SECONDARY. Announced 2009, unveiled
175
+ # January 2011, first issued June 2011 —
176
+ # all from the same uncited article. See
177
+ # notes for the three-date problem.
178
+ period_evidence: secondary-wikipedia
179
+ matching: strict
180
+ format:
181
+ pattern: "CL 99 LL"
182
+ regex: '\AC[A-Z] ?\d{2} ?[A-Z]{2}\z'
183
+ evidence: secondary
184
+ charset:
185
+ notes: >-
186
+ C IN THE FIRST POSITION. Reported as the chosen shape "Ca-nn-aa", with
187
+ the leading C constant across the series to date; it is encoded as a
188
+ LITERAL in `pattern` and `regex`, which is why this series is `strict`
189
+ with no strict twin. NO LETTER EXCLUSION IS SOURCED for the remaining
190
+ three letter positions, so none is claimed — whether the NT skips I, O
191
+ or Q as its mainland neighbours historically did is UNKNOWN and is a
192
+ recorded gap. THE LEADING C IS ALSO A RISK WORTH NAMING: if the NT
193
+ advances to a D block on exhaustion (as Victoria advanced 1 -> 2 and
194
+ Queensland A -> Z), this regex becomes wrong rather than merely
195
+ narrow. It is written as observed and must be re-audited, not
196
+ extrapolated.
197
+ progression: "ascending; the second character advances first, on the reported evidence of plates observed in the CA and CC blocks"
198
+ design:
199
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
200
+ colour_note: >-
201
+ OCHRE CHARACTERS ON REFLECTIVE WHITE — the NT is the only Australian
202
+ jurisdiction with an ochre plate, and the colour is the single most
203
+ distinctive thing about it. NO HEX IS RECORDED FOR THE OCHRE: no NT
204
+ government source publishes a colour, let alone a chromaticity, and
205
+ picking a red-brown would be inventing a fact the Territory has never
206
+ stated. The white ground is recorded as a hex because white is
207
+ unambiguous. The colour WORDS are secondary (the programme's own pinned
208
+ research appendix independently captured "ochre on white" for the NT,
209
+ which is corroboration, not verification).
210
+ legend_bottom: "NT OUTBACK AUSTRALIA"
211
+ legend_note: >-
212
+ Reported: the pre-2011 plates carried the slogan with punctuation
213
+ ("N.T. - OUTBACK AUSTRALIA") and the 2011 series "slightly modified
214
+ [it] to show as NT OUTBACK AUSTRALIA without dash and full stops". A
215
+ legend is not a serial and nothing encodes it; it is recorded because
216
+ the punctuation change is a useful era signal on a photograph.
217
+ group_separator_glyph: diamond
218
+ rear_differs: false
219
+ region_encoding: none
220
+ sources:
221
+ - "https://nt.gov.au/driving/registration/number-plates-apply-or-transfer-plates # Northern Territory Government, read via the Internet Archive 2026-08-02: 'You will be given a general issue plate unless you want to apply for personalised plates' — the agency's confirmation that a general-issue class exists and is the default. NEGATIVE FINDING, recorded: the page never states the combination"
222
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (accessed 2026-08-02): the Ca-nn-aa format, the 23 October 2009 announcement, the January 2011 unveiling and the June 2011 first issue, and the slogan change. The article cites an NT Government newsroom media release for the 2009 announcement; that URL is DEAD and its archive.today copy returned HTTP 429 on 2026-08-02 — the citation was chased and not reached"
223
+ - "https://vehiclesdb-pipeline/aux/research/plates-2026-07/plates-research-us-world.md # this programme's own pinned research appendix, §2.5: an independent capture of the NT's 'Ca·nn·aa' format and 'ochre on white' colours. Corroboration, not a source of record"
224
+ notes: >-
225
+ THE NORTHERN TERRITORY'S FIRST ALPHANUMERIC GENERAL ISSUE, AND A TEXTBOOK
226
+ THREE-DATE ROLLOUT. The secondary source gives three different dates for
227
+ one series and they are all real: ANNOUNCED 23 October 2009 (by an NT
228
+ Government media release), UNVEILED January 2011, AVAILABLE FOR ISSUE June
229
+ 2011. PRD-PLATES §2.2 anticipates exactly this ("rollouts need three
230
+ dates ... `period.rollout:` sub-keys when they differ") and the Mercosur
231
+ rollout is its worked example. No rollout sub-keys are written here for
232
+ one reason only: all three dates come from the SAME uncited paragraph, so
233
+ recording them as structured data would dress one weak source as three
234
+ strong ones. `period.start: 2011` is the FIRST-ISSUE year, which is what
235
+ period.start means (PRD-PLATES §4 instrument-date rule: the year the
236
+ format began), and the announcement year is deliberately not used —
237
+ announcing a format is not issuing it. THE ID IS DELIBERATELY UNDATED
238
+ (`au-nt-standard`, not `au-nt-standard-2011`), as in every other file of
239
+ this wave, because minting a dated id on an uncited boundary builds a
240
+ dated id on sand (PRD-QUALITY I-5/I-6). VERIFIER TARGET: the NT Government
241
+ newsroom media release of 23 October 2009 ("Territory Growth Brings Change
242
+ to Number Plates") is the document that would turn this whole entry
243
+ primary. It is dead at source; archive.today holds a copy at
244
+ /20130616013841/ which rate-limited this pass.
245
+
246
+ # =========================================================================
247
+ # ONE SERIES BACK — and it is the reason the NT is interesting: six numerals,
248
+ # no letters at all, for thirty-two years.
249
+ # =========================================================================
250
+ - id: au-nt-standard-numeric
251
+ class: standard
252
+ categories: [car, van, truck, bus]
253
+ period: { start: 1979, end: 2011 }
254
+ period_evidence: secondary-wikipedia
255
+ matching: strict
256
+ format:
257
+ pattern: "999 999"
258
+ regex: '\A\d{3} ?\d{3}\z'
259
+ evidence: secondary
260
+ charset:
261
+ notes: >-
262
+ SIX NUMERALS AND NOTHING ELSE. This is the only general-issue series in
263
+ the Australian wave with no letter in it, and one of very few in the
264
+ whole dataset. Reported allocation detail, secondary and NOT encoded:
265
+ "There doesn't seem to be a noticeable system to plate series, as
266
+ numbers of all types appear on both halves of the plate" — i.e. the
267
+ six digits carry no reported sub-structure, so the printed 3+3
268
+ grouping is typography rather than meaning. The regex accordingly
269
+ treats the gap as optional and claims nothing about the halves.
270
+ progression: >-
271
+ Reported: the NT ran FIVE numerals from 1953, "by the 1970s it reached
272
+ 100-000 so a 6-digit version was added", and the six-numeral form ran
273
+ from the 1979 colour change until the 2011 alphanumeric changeover.
274
+ Reported reserved blocks, recorded and not authored as series: NT
275
+ Government vehicles 800-000 to 899-999 (with NTG embossed at the left of
276
+ the plate), government motorcycles 80-000 to 85-999, and an MO 8-000
277
+ series for Darwin buses.
278
+ design:
279
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
280
+ colour_note: >-
281
+ Ochre on reflective white from 1979 — the changeover that ENDS the
282
+ preceding white-on-black numeric era and BEGINS the ochre one. Reported:
283
+ "All black-and-white plates were recalled and replaced on expiry of
284
+ registration, retention fees applied if the motorist wished to keep the
285
+ original number." No hex for the ochre, for the reason given on the
286
+ current series.
287
+ legend_bottom: "N.T. - OUTBACK AUSTRALIA"
288
+ group_separator_glyph: diamond
289
+ region_encoding: none
290
+ sources:
291
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (accessed 2026-08-02): the 1953-1979 white-on-black five- then six-numeral series, the 1979 changeover to ochre on reflective white with the recall-on-expiry rule, the six-numeral general issue running to 2011, the NTG and Darwin-bus reserved blocks, and the observation that the halves carry no system. NONE of these carries a footnote in the article"
292
+ notes: >-
293
+ THE NT'S THIRTY-TWO-YEAR NUMERIC GENERAL ISSUE, and the single most useful
294
+ era signal in the jurisdiction: any NT plate with a letter in it is 2011 or
295
+ later; any all-numeric NT plate is 2011 or earlier. Both boundaries are the
296
+ secondary article's and neither is cited, so the series is tagged
297
+ `secondary-wikipedia` end to end — but the SHAPE is corroborated by the
298
+ thing the article cannot fake, namely that the successor series exists at
299
+ all and had to be introduced because "both motorcycles and general series
300
+ have reached the 9's". DELIBERATELY NOT AUTHORED, for the usual reason (no
301
+ primary, uncited secondary): the white-on-black five-numeral series of
302
+ 1953-1979, the pre-1953 NT band plates, and the separate Central Australia
303
+ / Northern Australia plates of 1927-1933. They are L4 work and the article
304
+ is the only source for any of them.
305
+
306
+ # =========================================================================
307
+ # CORE CLASSES.
308
+ # =========================================================================
309
+ - id: au-nt-motorcycle
310
+ class: motorcycle
311
+ categories: [motorcycle]
312
+ period: { start: 2011 }
313
+ period_evidence: secondary-wikipedia
314
+ matching: strict
315
+ format:
316
+ pattern: "L 9999"
317
+ regex: '\A[A-Z] ?\d{4}\z'
318
+ evidence: secondary
319
+ charset: { notes: "one letter then four numerals — a shorter grammar than the car series, on a smaller plate. No letter exclusion is sourced; none is claimed" }
320
+ progression: "reported: adopted in March 2011 replacing the all-numeric motorcycle series; reported to have reached the A-8900s by October 2015"
321
+ design:
322
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
323
+ colour_note: "ochre on reflective white, as the car series; no hex for the ochre"
324
+ group_separator_glyph: diamond
325
+ plates_issued: 1
326
+ layout_history_note: >-
327
+ Reported, and a genuinely unusual sequence of THREE physical versions of
328
+ one serial grammar in four years: version 1 from March 2011 with a
329
+ registration-label box; version 2 from 2013 when labels were abolished
330
+ and the characters were re-centred (reported to have lasted about 2,500
331
+ plates); version 3 from October 2015 on the standard Australian
332
+ motorcycle plate stock, from the A-8900s. Same grammar throughout, so
333
+ one series with a note rather than three series (PRD-PLATES §2.3: own
334
+ series iff format OR design OR period differs — these differ in
335
+ FURNITURE, and no source gives clean boundaries).
336
+ region_encoding: none
337
+ sources:
338
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (accessed 2026-08-02): the A-1234 motorcycle format from March 2011, the three physical versions, and the pre-2011 all-numeric motorcycle series"
339
+ notes: >-
340
+ NT MOTORCYCLES. Authored because a motorcycle grammar that DIFFERS from
341
+ the car grammar is a real parse fact (contrast the ACT and Tasmania, where
342
+ no motorcycle grammar could be sourced at all and none is authored). The
343
+ registration-label furniture history is recorded on the design rather than
344
+ split into series because the SERIAL never changed and no source dates the
345
+ changes precisely enough to carry a period.
346
+
347
+ - id: au-nt-trailer
348
+ class: trailer
349
+ categories: [trailer]
350
+ period: { start: 2011 }
351
+ period_evidence: secondary-wikipedia
352
+ matching: strict
353
+ format:
354
+ pattern: "TL 9999"
355
+ regex: '\AT[A-Z] ?\d{4}\z'
356
+ evidence: secondary
357
+ charset:
358
+ notes: >-
359
+ T IN THE FIRST POSITION IS THE TRAILER MARKER, which is the same
360
+ convention New South Wales uses (plates/au-nsw.yml) and South
361
+ Australia uses in a different position (S999 TLL). Encoded as a
362
+ literal, hence `strict` with no strict twin. Reported photographic
363
+ corroboration: a 1979-era NT trailer plate captioned "T indicates
364
+ trailer", i.e. the convention predates this series.
365
+ design:
366
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
367
+ colour_note: "ochre on reflective white; no hex for the ochre"
368
+ group_separator_glyph: diamond
369
+ plates_issued: 1
370
+ region_encoding: none
371
+ sources:
372
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (accessed 2026-08-02): the TA-1234 trailer format, and the caption evidence that T marked NT trailers under the earlier numeric regime too"
373
+ notes: >-
374
+ NT TRAILERS. The weakest-sourced series in this file and it says so: the
375
+ format is a single line in an uncited article, corroborated only by a
376
+ photograph caption in the same article. It is authored because the T-first
377
+ convention is consistent across three Australian jurisdictions in this wave
378
+ and because a consumer parsing an NT string needs to know that T-then-letter
379
+ is not a car. A verifier should treat it as the first candidate for
380
+ deletion if the MVR turns out to say otherwise.
381
+
382
+ - id: au-nt-personalized
383
+ class: personalized
384
+ categories: [car, van, truck, motorcycle, trailer]
385
+ period: { start: 2017 } # IN-FORCE OBSERVATION, not a scheme start:
386
+ # the last-updated date of the agency page
387
+ # read. The scheme is older. See notes.
388
+ period_evidence: agency-page-in-force
389
+ matching: recall-only
390
+ format:
391
+ pattern: "LLLLLL"
392
+ regex: '\A[A-Z0-9]{1,7}\z'
393
+ evidence: none
394
+ charset:
395
+ notes: >-
396
+ NO CONFIGURATION RULE WAS OBTAINED — not a length cap, not an
397
+ alphabet, not the refusal criteria. The NT Government page names the
398
+ scheme and its subpages ("Apply for personalised plates", "Types of
399
+ personalised and special plates", "Apply for club vehicle plates",
400
+ "Apply to buy souvenir plates") and describes none of their grammars;
401
+ those subpages were unreachable in this pass. The regex is therefore a
402
+ deliberate over-approximation over the serial alphabet, bounded by a
403
+ seven-character cap borrowed from ANOTHER jurisdiction's plate-capacity
404
+ rule (the ACT's 372 mm plate "can have up to seven characters"). Hence
405
+ `matching: recall-only`: a match is a shape hit and nothing more
406
+ (PRD-PLATES §2.7), and a `regex_strict` here would be a contradiction.
407
+ design:
408
+ background: { finish: retroreflective }
409
+ note: >-
410
+ Reported colour options, secondary: ochre on white, black on white and
411
+ black on yellow bases, with slogan options "N.T. - OUTBACK AUSTRALIA",
412
+ "N.T. - NATURE TERRITORY" or plain "N.T."; slimline plates from the
413
+ early 2000s. Individual designs are out of scope (PRD-PLATES §2.5).
414
+ region_encoding: none
415
+ sources:
416
+ - "https://nt.gov.au/driving/registration/number-plates-apply-or-transfer-plates # Northern Territory Government, read via the Internet Archive 2026-08-02: 'You will be given a general issue plate unless you want to apply for personalised plates'; the section index naming the personalised, club-vehicle and souvenir-plate subpages; the right-to-display lapse rule that governs the combination"
417
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Northern_Territory # secondary (accessed 2026-08-02): the claim that 'In the 1990s MVR started offering custom, or combination of alphanumerics personalised' with the three colour bases and three slogan options. The DECADE is uncited and is NOT used as this series' start"
418
+ notes: >-
419
+ NT PERSONALISED PLATES, AUTHORED THIN AND HONEST. `start: 2017` is NOT a
420
+ claim about when the scheme began — it is the last-updated date of the
421
+ agency page that evidences the scheme in force, hence
422
+ `period_evidence: agency-page-in-force`, the weakest honest reading. The
423
+ secondary source puts the scheme's origin in the 1990s; a bare decade is
424
+ not a start year and is deliberately not promoted into `period.start`
425
+ (PRD-PLATES §9: primary-source-or-marked, and a marked guess is still a
426
+ guess). `matching: recall-only` follows from the §2.7 test read straight:
427
+ the regex is wider than anything the MVR issues, because what the MVR
428
+ issues is unpublished. VERIFIER TARGET: the four nt.gov.au subpages named
429
+ in the page index — they are the documents that would give this series a
430
+ real grammar, a real start and the club/souvenir series this file does not
431
+ author.