vehicles 0.9.0 → 0.9.2

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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -7
  3. data/README.md +353 -69
  4. data/data/PROVENANCE-vehicles.md +2 -2
  5. data/data/plates/PROVENANCE.md +2 -2
  6. data/data/plates/_decode/at-districts.yml +2 -2
  7. data/data/plates/_decode/cn-issuing-offices.yml +2 -2
  8. data/data/plates/_decode/cn-provinces.yml +2 -2
  9. data/data/plates/_decode/cz-kraj.yml +1 -1
  10. data/data/plates/_decode/dk-serial-blocks.yml +1 -1
  11. data/data/plates/_decode/es-provinces.yml +1 -1
  12. data/data/plates/_decode/fr-departements.yml +2 -2
  13. data/data/plates/_decode/gb-age-identifiers.yml +1 -1
  14. data/data/plates/_decode/gb-memory-tags.yml +1 -1
  15. data/data/plates/_decode/gr-prefectures.yml +1 -1
  16. data/data/plates/_decode/hr-cities.yml +3 -3
  17. data/data/plates/_decode/ie-counties.yml +3 -3
  18. data/data/plates/_decode/in-state-codes.yml +2 -2
  19. data/data/plates/_decode/it-provinces.yml +3 -3
  20. data/data/plates/_decode/jp-office-marks.yml +2 -2
  21. data/data/plates/_decode/jp-use-marks.yml +2 -2
  22. data/data/plates/_decode/kr-authority-marks.yml +1 -1
  23. data/data/plates/_decode/mx-entity-series.yml +1 -1
  24. data/data/plates/_decode/my-index-marks.yml +4 -4
  25. data/data/plates/_decode/pt-trailer-services.yml +1 -1
  26. data/data/plates/_decode/ro-counties.yml +1 -1
  27. data/data/plates/_decode/se-diplomatic.yml +1 -1
  28. data/data/plates/_decode/si-regions.yml +1 -1
  29. data/data/plates/_decode/ua-regions.yml +1 -1
  30. data/data/plates/_meta/classes.yml +1 -1
  31. data/data/plates/_meta/separators.yml +1 -1
  32. data/data/plates/ad.yml +555 -52
  33. data/data/plates/ar.yml +8 -8
  34. data/data/plates/at.yml +91 -10
  35. data/data/plates/au-act.yml +13 -13
  36. data/data/plates/au-nsw.yml +9 -9
  37. data/data/plates/au-nt.yml +13 -14
  38. data/data/plates/au-qld.yml +7 -7
  39. data/data/plates/au-sa.yml +7 -7
  40. data/data/plates/au-tas.yml +10 -10
  41. data/data/plates/au-vic.yml +6 -6
  42. data/data/plates/au-wa.yml +8 -8
  43. data/data/plates/be.yml +11 -11
  44. data/data/plates/br.yml +14 -14
  45. data/data/plates/ca-ab.yml +10 -10
  46. data/data/plates/ca-bc.yml +6 -6
  47. data/data/plates/ca-mb.yml +4 -4
  48. data/data/plates/ca-nb.yml +9 -9
  49. data/data/plates/ca-nl.yml +11 -11
  50. data/data/plates/ca-ns.yml +12 -12
  51. data/data/plates/ca-nt.yml +7 -7
  52. data/data/plates/ca-nu.yml +7 -7
  53. data/data/plates/ca-on.yml +21 -21
  54. data/data/plates/ca-pe.yml +13 -13
  55. data/data/plates/ca-qc.yml +11 -11
  56. data/data/plates/ca-sk.yml +6 -6
  57. data/data/plates/ca-yt.yml +6 -6
  58. data/data/plates/ch.yml +14 -14
  59. data/data/plates/cn.yml +9 -9
  60. data/data/plates/cy.yml +6 -6
  61. data/data/plates/cz.yml +9 -9
  62. data/data/plates/de.yml +8 -8
  63. data/data/plates/dk.yml +12 -12
  64. data/data/plates/ee.yml +13 -13
  65. data/data/plates/eg.yml +708 -0
  66. data/data/plates/es.yml +8 -8
  67. data/data/plates/fi.yml +14 -14
  68. data/data/plates/fr.yml +12 -12
  69. data/data/plates/gb.yml +16 -16
  70. data/data/plates/gr.yml +14 -14
  71. data/data/plates/hr.yml +15 -15
  72. data/data/plates/hu.yml +16 -16
  73. data/data/plates/ie.yml +7 -7
  74. data/data/plates/in.yml +7 -7
  75. data/data/plates/is.yml +3 -3
  76. data/data/plates/it.yml +21 -21
  77. data/data/plates/jp.yml +121 -121
  78. data/data/plates/kr.yml +6 -6
  79. data/data/plates/li.yml +6 -6
  80. data/data/plates/lt.yml +10 -10
  81. data/data/plates/lu.yml +4 -4
  82. data/data/plates/lv.yml +9 -9
  83. data/data/plates/mc.yml +4 -4
  84. data/data/plates/mt.yml +5 -5
  85. data/data/plates/mx.yml +7 -7
  86. data/data/plates/my.yml +18 -18
  87. data/data/plates/ng.yml +346 -0
  88. data/data/plates/nl.yml +5 -5
  89. data/data/plates/no.yml +7 -7
  90. data/data/plates/nz.yml +18 -18
  91. data/data/plates/pl.yml +4 -4
  92. data/data/plates/pt.yml +13 -5
  93. data/data/plates/ro.yml +14 -14
  94. data/data/plates/se.yml +13 -13
  95. data/data/plates/si.yml +8 -8
  96. data/data/plates/sk.yml +15 -15
  97. data/data/plates/sm.yml +7 -7
  98. data/data/plates/th.yml +10 -10
  99. data/data/plates/tr.yml +432 -0
  100. data/data/plates/ua.yml +9 -9
  101. data/data/plates/us-ak.yml +11 -11
  102. data/data/plates/us-al.yml +12 -12
  103. data/data/plates/us-ar.yml +15 -15
  104. data/data/plates/us-as.yml +10 -10
  105. data/data/plates/us-az.yml +10 -10
  106. data/data/plates/us-ca.yml +13 -13
  107. data/data/plates/us-co.yml +14 -14
  108. data/data/plates/us-ct.yml +24 -24
  109. data/data/plates/us-dc.yml +7 -7
  110. data/data/plates/us-de.yml +10 -10
  111. data/data/plates/us-fl.yml +17 -17
  112. data/data/plates/us-ga.yml +10 -10
  113. data/data/plates/us-gu.yml +11 -11
  114. data/data/plates/us-hi.yml +11 -11
  115. data/data/plates/us-ia.yml +9 -9
  116. data/data/plates/us-id.yml +13 -13
  117. data/data/plates/us-il.yml +11 -11
  118. data/data/plates/us-in.yml +9 -9
  119. data/data/plates/us-ks.yml +8 -8
  120. data/data/plates/us-ky.yml +11 -11
  121. data/data/plates/us-la.yml +11 -11
  122. data/data/plates/us-ma.yml +10 -10
  123. data/data/plates/us-md.yml +7 -7
  124. data/data/plates/us-me.yml +16 -16
  125. data/data/plates/us-mi.yml +8 -8
  126. data/data/plates/us-mn.yml +13 -13
  127. data/data/plates/us-mo.yml +13 -13
  128. data/data/plates/us-mp.yml +12 -12
  129. data/data/plates/us-ms.yml +8 -8
  130. data/data/plates/us-mt.yml +12 -12
  131. data/data/plates/us-nc.yml +12 -12
  132. data/data/plates/us-nd.yml +10 -10
  133. data/data/plates/us-ne.yml +10 -10
  134. data/data/plates/us-nh.yml +8 -8
  135. data/data/plates/us-nj.yml +8 -8
  136. data/data/plates/us-nm.yml +14 -14
  137. data/data/plates/us-nv.yml +18 -18
  138. data/data/plates/us-ny.yml +17 -17
  139. data/data/plates/us-oh.yml +13 -13
  140. data/data/plates/us-ok.yml +12 -12
  141. data/data/plates/us-or.yml +15 -15
  142. data/data/plates/us-pa.yml +14 -14
  143. data/data/plates/us-pr.yml +15 -15
  144. data/data/plates/us-ri.yml +10 -10
  145. data/data/plates/us-sc.yml +7 -7
  146. data/data/plates/us-sd.yml +12 -12
  147. data/data/plates/us-tn.yml +8 -8
  148. data/data/plates/us-tx.yml +17 -17
  149. data/data/plates/us-ut.yml +12 -12
  150. data/data/plates/us-va.yml +14 -14
  151. data/data/plates/us-vi.yml +16 -16
  152. data/data/plates/us-vt.yml +9 -9
  153. data/data/plates/us-wa.yml +18 -18
  154. data/data/plates/us-wi.yml +8 -8
  155. data/data/plates/us-wv.yml +9 -9
  156. data/data/plates/us-wy.yml +10 -10
  157. data/data/plates/va.yml +7 -7
  158. data/data/plates/za.yml +11 -11
  159. data/data/vehicles.json +121081 -62015
  160. data/lib/generators/vehicles/templates/initializer.rb +21 -12
  161. data/lib/generators/vehicles/templates/vehicles_refresh_job.rb +8 -4
  162. data/lib/vehicles/color.rb +8 -1
  163. data/lib/vehicles/colors.rb +14 -10
  164. data/lib/vehicles/configuration.rb +82 -3
  165. data/lib/vehicles/data_source.rb +220 -0
  166. data/lib/vehicles/dataset.rb +38 -6
  167. data/lib/vehicles/dataset_resolution.rb +39 -3
  168. data/lib/vehicles/dataset_slice.rb +90 -0
  169. data/lib/vehicles/hosted_result.rb +94 -0
  170. data/lib/vehicles/http.rb +75 -7
  171. data/lib/vehicles/id_lookup.rb +37 -0
  172. data/lib/vehicles/kind_rule.rb +63 -0
  173. data/lib/vehicles/labels.rb +131 -0
  174. data/lib/vehicles/make.rb +45 -19
  175. data/lib/vehicles/model.rb +66 -19
  176. data/lib/vehicles/model_match.rb +16 -2
  177. data/lib/vehicles/model_matcher.rb +6 -7
  178. data/lib/vehicles/plates/series.rb +87 -8
  179. data/lib/vehicles/plates/template_fill.rb +2 -2
  180. data/lib/vehicles/plates/templates.rb +9 -5
  181. data/lib/vehicles/plates.rb +54 -8
  182. data/lib/vehicles/providers/hosted_provider.rb +145 -32
  183. data/lib/vehicles/providers/local_provider.rb +2 -2
  184. data/lib/vehicles/refresh_result.rb +74 -0
  185. data/lib/vehicles/refresher.rb +190 -54
  186. data/lib/vehicles/release_checks.rb +72 -0
  187. data/lib/vehicles/text_matcher.rb +19 -10
  188. data/lib/vehicles/validators/vehicle_make_validator.rb +18 -1
  189. data/lib/vehicles/validators/vehicle_model_validator.rb +17 -1
  190. data/lib/vehicles/version.rb +1 -1
  191. data/lib/vehicles.rb +119 -67
  192. data/rakelib/data_refresh.rake +1 -1
  193. data/rakelib/plates_refresh.rake +1 -1
  194. data/sig/vehicles.rbs +67 -13
  195. metadata +13 -2
@@ -1,4 +1,4 @@
1
- # plates/us-wi.yml — Wisconsin (PRD-PLATES gate L2, group midwest-a).
1
+ # plates/us-wi.yml — Wisconsin (the plates spec gate L2, group midwest-a).
2
2
  #
3
3
  # WISCONSIN IS THE STATE THAT LEGISLATES THE SHEETING. Wis. Stat. 341.12(4)(am)
4
4
  # is the single most renderable, most citable piece of US plate law found in
@@ -33,7 +33,7 @@
33
33
  # REPRODUCTION of the same edict; the canonical docs.legis.wisconsin.gov
34
34
  # citation accompanies each source line and was NOT fetched.
35
35
  #
36
- # NOT HERE, DELIBERATELY: individual special-plate DESIGNS (L4 per PRD-PLATES
36
+ # NOT HERE, DELIBERATELY: individual special-plate DESIGNS (L4 per the plates spec
37
37
  # §2.5); the personalized series and Wisconsin's 'official' state plate series,
38
38
  # both outside the L2 core-class list — the statutory personalized position
39
39
  # limits are recorded instead inside the standard series' charset notes, where
@@ -46,7 +46,7 @@ binding: vehicle
46
46
  statute_edition: "Wisconsin Statutes Chapter 341 (Registration of Vehicles), as reproduced by codes.findlaw.com and read 2026-08-02. FindLaw warns its text 'may not reflect the most recent version of the law'; currency is UNVERIFIED. The 341.12(4)(am) text read here includes the July 2022 commencement, so the reproduction is at least that recent."
47
47
 
48
48
  # ---------------------------------------------------------------------------
49
- # artwork_risk — required per jurisdiction by PRD-PLATES §4.
49
+ # artwork_risk — required per jurisdiction by the plates spec §4.
50
50
  # ---------------------------------------------------------------------------
51
51
  artwork_risk:
52
52
  posture: unresearched-default-adverse
@@ -66,10 +66,10 @@ artwork_risk:
66
66
  sheeting, 150 cd/lx/m², luminance factor above 55 — is an EDICT OF
67
67
  GOVERNMENT and public domain at every level, as are the plate-content rules
68
68
  of 341.12(3) and the display rules of 341.15. Wisconsin is the strongest
69
- case in this group for PRD-PLATES §4's preference for statutes over
69
+ case in this group for the plates spec §4's preference for statutes over
70
70
  brochures: the statute gives a renderable spec that no brochure would.
71
71
  emblem_rule: >-
72
- PRD-PLATES §3's placeholder default applies to the state name treatment and
72
+ the plates spec §3's placeholder default applies to the state name treatment and
73
73
  any graphic element on the base. Render
74
74
  `emblem: {present: true, rendered: placeholder}`. State-seal protection is
75
75
  independent of copyright and is unresearched for Wisconsin.
@@ -161,7 +161,7 @@ series:
161
161
  regex.
162
162
  separator_note: >-
163
163
  The hyphen is PRINTED on the Wisconsin plate, so it is spelled in both
164
- the pattern and the regex per PRD-PLATES §2.6 rule 2. The regex accepts
164
+ the pattern and the regex per the plates spec §2.6 rule 2. The regex accepts
165
165
  either emitted separator or none — `[- ]?` — which is a sanctioned
166
166
  separator-only class under §2.8: it contains only separator characters
167
167
  and is not negated, so a consumer deriving the separator-free twin can
@@ -465,7 +465,7 @@ series:
465
465
  charset: { notes: "special group plates carry ordinary serials on an alternative design; 341.145's position caps apply where the combination is owner-chosen (6 positions on certain veteran and conservation plates, 5 on electric-vehicle plates — the statute varies the cap BY PLATE TYPE, which is unusual and is itself a modelling signal)" }
466
466
  design:
467
467
  background: { finish: retroreflective }
468
- note: "one design per special group; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
468
+ note: "one design per special group; the designs themselves are L4 scope (the plates spec §2.5) and none is described here"
469
469
  emblem: { present: true, rendered: placeholder }
470
470
  design_authority: "Wis. Stat. 341.14: 'the department shall specify the design for special group plates, but the department shall consult' the relevant officials and organisations before finalising a design — so a Wisconsin special plate's design is departmental with a statutory consultation duty, not organisational"
471
471
  program_index:
@@ -500,7 +500,7 @@ series:
500
500
  - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Wisconsin # LOCATOR ONLY: the individual special plates are listed without an aggregate count"
501
501
  notes: >-
502
502
  THE WISCONSIN SPECIALTY PROGRAM INDEX — one entry for the whole programme per
503
- PRD-PLATES §2.5, count declared as a gap, statutory mechanism recorded in
503
+ the plates spec §2.5, count declared as a gap, statutory mechanism recorded in
504
504
  full because it is the durable half. Two details are worth carrying: the
505
505
  threshold is SIGNATURES OF INTENT rather than applications, which is a
506
506
  weaker commitment than Illinois demands and predicts a larger, churnier
@@ -1,4 +1,4 @@
1
- # plates/us-wv.yml — West Virginia (PRD-PLATES gate L2, group southeast-a).
1
+ # plates/us-wv.yml — West Virginia (the plates spec gate L2, group southeast-a).
2
2
  #
3
3
  # THE WEST VIRGINIA FINDING: WV Code §17A-3-14 WAS GUTTED, AND THE GUTTING IS
4
4
  # THE STORY. The section's own heading still promises "Registration plates
@@ -9,7 +9,7 @@
9
9
  # plate per vehicle, a registration number "in a configuration determined by
10
10
  # the commissioner", reflectorized material, and legibility at 100 feet. A
11
11
  # researcher reading only the heading would expect a colour table; the body
12
- # has none. Recorded here because it is exactly the trap PRD-PLATES §5.3 warns
12
+ # has none. Recorded here because it is exactly the trap the plates spec §5.3 warns
13
13
  # about, and because it means every WEST VIRGINIA FORMAT AND COLOUR CLAIM IS
14
14
  # NON-STATUTORY BY CONSTRUCTION.
15
15
  #
@@ -29,7 +29,7 @@ binding: vehicle
29
29
  statute_edition: "West Virginia Code, Chapter 17A (Motor Vehicle Administration, Registration, Certificate of Title, and Antitheft Provisions), Article 3 — as served by code.wvlegislature.gov and read 2026-08-01"
30
30
 
31
31
  # ---------------------------------------------------------------------------
32
- # artwork_risk — required per jurisdiction by PRD-PLATES §4.
32
+ # artwork_risk — required per jurisdiction by the plates spec §4.
33
33
  # ---------------------------------------------------------------------------
34
34
  artwork_risk:
35
35
  posture: unresearched
@@ -56,7 +56,7 @@ artwork_risk:
56
56
  Virginia's state-seal misuse law, which would bind the STATE SEAL
57
57
  independently of any copyright answer.
58
58
  emblem_rule: >-
59
- PRD-PLATES §3's placeholder default applies with extra force here, because
59
+ the plates spec §3's placeholder default applies with extra force here, because
60
60
  the posture is unknown rather than merely adverse. The current base carries
61
61
  a gold-on-dark-blue "West Virginia" bar and, on the 2023 design, a STATE
62
62
  OUTLINE used as the serial separator — a state-shape graphic sitting
@@ -156,7 +156,7 @@ series:
156
156
  cosmetic OCR problem in West Virginia, it is a semantic one — "O12
157
157
  345A" expires in October and "012 345A" is not a valid plate at all.
158
158
  progression: "not published; the series letter and the block allocation for this base were not obtained (recorded gap)"
159
- separator_note: "the gap between the two three-character groups is spelled as an optional space because the plate prints a gap there; on this base the physical separator is reported to be a STATE-OUTLINE graphic rather than a printed glyph, which under PRD-PLATES §2.6 is a design element (design.emblem), never a serial character and never something a consumer may strip as punctuation"
159
+ separator_note: "the gap between the two three-character groups is spelled as an optional space because the plate prints a gap there; on this base the physical separator is reported to be a STATE-OUTLINE graphic rather than a printed glyph, which under the plates spec §2.6 is a design element (design.emblem), never a serial character and never something a consumer may strip as punctuation"
160
160
  design:
161
161
  plate: { w: 12, h: 6, unit: in, dimension_evidence: convention-not-sourced }
162
162
  plate_dimension_note: "no West Virginia dimension is sourced — §17A-3-14 states none. 12 x 6 in is the North American convention (AAMVA -> SAE J686, voluntary), recorded as convention and not as a West Virginia claim."
@@ -189,7 +189,7 @@ series:
189
189
  sources:
190
190
  - "https://code.wvlegislature.gov/17A-3-14/ # §17A-3-14(a): one plate, registration number 'consisting of a combination of letters, numerals, symbols, or characters in a configuration determined by the commissioner' — the statutory basis for there being no statutory format; (b)(1) reflectorized; (b)(2) 100-foot legibility"
191
191
  - "https://transportation.wv.gov/DMV/Vehicle-Services/Pages/Classifications.aspx # WV DMV: Class A = passenger cars and trucks of 10,000 lb or less, the class this base serves"
192
- - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_West_Virginia # LOCATOR ONLY (PRD-PLATES §4): the July 2023 start, the state-outline separator, the gold-on-blue top bar, the serial arrangement, and the month-code system reported as continuing 'today'. None asserted as sourced."
192
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_West_Virginia # LOCATOR ONLY (the plates spec §4): the July 2023 start, the state-outline separator, the gold-on-blue top bar, the serial arrangement, and the month-code system reported as continuing 'today'. None asserted as sourced."
193
193
  notes: >-
194
194
  WEST VIRGINIA CURRENT STANDARD ISSUE (CLASS A). Everything structural
195
195
  here — one plate, commissioner-set configuration, reflectorization,
@@ -200,7 +200,7 @@ series:
200
200
  because putting it somewhere prominent is what will get it verified. The
201
201
  series id is dated 2023 to the reported base change; if that date falls,
202
202
  the id keeps its append-only guarantee and gains a former-id alias under
203
- the PRD-QUALITY I-5/I-6 contract.
203
+ the quality spec I-5/I-6 contract.
204
204
 
205
205
  # =========================================================================
206
206
  # ONE SERIES BACK.
@@ -220,7 +220,7 @@ series:
220
220
  notes: >-
221
221
  THREE ARRANGEMENTS, ONE BASE — and the regex is their union, which is
222
222
  still `strict` because the union is exactly what West Virginia issued
223
- on this base and no wider (PRD-PLATES §2.7: narrower or equal is
223
+ on this base and no wider (the plates spec §2.7: narrower or equal is
224
224
  strict; only a DELIBERATELY over-broad regex is recall-only). The
225
225
  three reported arrangements, after the leading month character: one
226
226
  letter plus four digits; two letters plus three digits; one digit,
@@ -411,7 +411,7 @@ series:
411
411
  design:
412
412
  plate: { unit: in }
413
413
  background: { finish: retroreflective }
414
- note: "one design per authorised programme; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
414
+ note: "one design per authorised programme; the designs themselves are L4 scope (the plates spec §2.5) and none is described here"
415
415
  emblem: { present: true, rendered: placeholder }
416
416
  program_index:
417
417
  count_official: null
@@ -1,4 +1,4 @@
1
- # plates/us-wy.yml — Wyoming (PRD-PLATES gate L2, northwest group).
1
+ # plates/us-wy.yml — Wyoming (the plates spec gate L2, northwest group).
2
2
  #
3
3
  # WYOMING IS THE ONLY STATE IN THIS GROUP WHOSE PLATE ARTWORK IS A REGISTERED
4
4
  # STATE TRADEMARK, AND THE STATUTE PUTS THAT ARTWORK INSIDE THE SERIAL LINE.
@@ -43,7 +43,7 @@ statute_edition: >-
43
43
  text-extracted 2026-08-02.
44
44
 
45
45
  # ---------------------------------------------------------------------------
46
- # artwork_risk — required per jurisdiction by PRD-PLATES §4/§7.1.
46
+ # artwork_risk — required per jurisdiction by the plates spec §4/§7.1.
47
47
  # ---------------------------------------------------------------------------
48
48
  artwork_risk:
49
49
  posture: asserted
@@ -62,16 +62,16 @@ artwork_risk:
62
62
  appropriates funds specifically to enforce it. W.S. 31-2-204(b) then puts
63
63
  that mark ON THE PLATE, between the county number and the serial, on every
64
64
  standard issue. Separately, Wyoming appears NOWHERE in the standing
65
- per-state COPYRIGHT survey PRD-PLATES §4 works from and no {{PD-WYGov}}
65
+ per-state COPYRIGHT survey the plates spec §4 works from and no {{PD-WYGov}}
66
66
  tag exists on Wikimedia Commons, so the copyright posture is unresearched
67
67
  and the default (state works copyrighted unless the state says otherwise)
68
68
  applies. THE TRADEMARK POINT IS INDEPENDENT OF COPYRIGHT AND SURVIVES IT:
69
69
  even a favourable copyright finding would not clear the Bucking Horse and
70
70
  Rider, because trademark protection is a separate regime — exactly the
71
- hazard PRD-PLATES §4 flags for state seals, here documented rather than
71
+ hazard the plates spec §4 flags for state seals, here documented rather than
72
72
  assumed.
73
73
  emblem_rule: >-
74
- PRD-PLATES §3's placeholder default applies with unusual force. The
74
+ the plates spec §3's placeholder default applies with unusual force. The
75
75
  Bucking Horse and Rider MUST render as a neutral placeholder — it is a
76
76
  live, licensed, revenue-generating state trademark, and it is not a
77
77
  candidate for an emblem-slot upgrade at any gate absent an affirmative
@@ -196,7 +196,7 @@ series:
196
196
  a DESIGN ELEMENT carried in `design.emblem`; it is NOT a separator
197
197
  character, it is NOT part of the serial, and no consumer may treat it
198
198
  as either. The separator position is spelled as the separator-only
199
- class `[- ]`, sanctioned by PRD-PLATES §2.8, because the statute names
199
+ class `[- ]`, sanctioned by the plates spec §2.8, because the statute names
200
200
  no separator GLYPH at all — it names a picture. `pattern` shows the
201
201
  canonical printed form as a space.
202
202
  tier_note: >-
@@ -327,7 +327,7 @@ series:
327
327
  BOUND. NO "ONE SERIES BACK" ENTRY IS GIVEN: with an annual cycle and no
328
328
  legislated design generations there is no primary-sourced predecessor
329
329
  base to record, and inventing one from a collector table would be
330
- exactly the laundering PRD-PLATES §9 warns against. Recorded as a gap.
330
+ exactly the laundering the plates spec §9 warns against. Recorded as a gap.
331
331
  Distinct from us-wy-antique in carrying the year numerals, which the
332
332
  antique plate is statutorily forbidden to bear.
333
333
 
@@ -365,7 +365,7 @@ series:
365
365
  - "https://www.wyoleg.gov/statutes/compress/title31.pdf # W.S. 31-2-204(b): the 'Pioneer Wyo' inscription and the no-date prohibition; W.S. 31-2-205(a)(i)(A)(VII): antique vehicles excluded from the front plate; W.S. 31-2-223: the antique registration section (cross-referenced, not read in full)"
366
366
  notes: >-
367
367
  ANTIQUE ("Pioneer Wyo"). Worth its own series on two independent
368
- PRD-PLATES §2.3 grounds: the LEGEND is legislated verbatim, and the
368
+ the plates spec §2.3 grounds: the LEGEND is legislated verbatim, and the
369
369
  no-date rule is a statutory design prohibition the standard series
370
370
  inverts. `recall-only` because only the legend and the date prohibition
371
371
  are sourced — the serial grammar is not, and the regex is deliberately
@@ -417,7 +417,7 @@ series:
417
417
  Wyoming vehicles.
418
418
 
419
419
  # =========================================================================
420
- # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5.
420
+ # SPECIALTY — THE PROGRAM INDEX, per the plates spec §2.5.
421
421
  # =========================================================================
422
422
  - id: us-wy-specialty-index
423
423
  class: specialty
@@ -480,7 +480,7 @@ series:
480
480
  - "https://www.wyoleg.gov/statutes/compress/title31.pdf # the disabled-plate serial specification (county numerals, emblem, up to three numbers and letters, international symbol of access) and the 3 x 6 inch small-plate minimum; W.S. 31-3-102(a)(xxii)-(xxiv): the optional-embossed fee and the EV/PHEV decals bearing the emblem; W.S. 31-2-226/31-2-227: street rod and custom vehicle classes"
481
481
  notes: >-
482
482
  THE WYOMING SPECIALTY INDEX — one entry standing for the whole
483
- programme, per PRD-PLATES §2.5. Wyoming's catalogue is SMALL (23 named
483
+ programme, per the plates spec §2.5. Wyoming's catalogue is SMALL (23 named
484
484
  programmes against Washington's 49 statutory entries and Idaho's
485
485
  "over 40"), ENUMERATED rather than counted, and split by issuing route
486
486
  in a way that matters operationally: nineteen go through the county
data/data/plates/va.yml CHANGED
@@ -1,4 +1,4 @@
1
- # plates/va.yml — Vatican City State (PRD-PLATES gate L1, microstates group).
1
+ # plates/va.yml — Vatican City State (the plates spec gate L1, microstates group).
2
2
  # DRAFT for verification. Fetched 2026-08-02.
3
3
  #
4
4
  # ---------------------------------------------------------------------------
@@ -162,7 +162,7 @@ common:
162
162
  DATASET LIMITATION, stated because it affects two series. The pre-1988
163
163
  plates printed the sigla WITH DOTS — "S.C.V." — and U+002E FULL STOP is
164
164
  in _meta/separators.yml's FORGIVING set but NOT its EMITTED set, so
165
- PRD-PLATES §2.6 forbids writing it. The patterns below therefore spell
165
+ the plates spec §2.6 forbids writing it. The patterns below therefore spell
166
166
  "SCV" undotted, exactly as ch.yml spells the Swiss mid-height point as a
167
167
  space. A §2.6-conformant consumer strips the dots from a real "S.C.V. 84"
168
168
  and reaches "SCV84", which the separator-free twin of these regexes
@@ -172,7 +172,7 @@ common:
172
172
  status: UNRESOLVED
173
173
  rule: >-
174
174
  THREE SOURCES GIVE THREE DIFFERENT ANSWERS FOR THE MODERN REAR CAR PLATE
175
- AND THEY ARE NOT RECONCILABLE. PRD-PLATES §5.3 says record the
175
+ AND THEY ARE NOT RECONCILABLE. The plates spec §5.3 says record the
176
176
  disagreement and never average it, so no `design.plate` block in this
177
177
  file carries a width and height. The claims, each attributed:
178
178
  (a) 520 x 110 mm — en.wikipedia's infobox. This is exactly the EU
@@ -218,7 +218,7 @@ common:
218
218
  rendered: placeholder
219
219
  rule: >-
220
220
  The papal arms (crossed keys and tiara) appear on the seal and on papal
221
- plates. PRD-PLATES §3's placeholder rule applies and there is no
221
+ plates. The plates spec §3's placeholder rule applies and there is no
222
222
  affirmatively-clean licence route: the Holy See asserts control over its
223
223
  insignia, and no permissive licence was located. Placeholder everywhere.
224
224
  not_modelled:
@@ -374,7 +374,7 @@ series:
374
374
  STATE two-wheelers and tractors. Square 177 x 177 mm, four digits. The
375
375
  February 2009 redesign (border plus a horizontal dividing rule) is a
376
376
  DESIGN change within one series rather than a new series: the format and
377
- the eligibility are unchanged, so under PRD-PLATES §2.3 it is a sub-entry
377
+ the eligibility are unchanged, so under the plates spec §2.3 it is a sub-entry
378
378
  and it is recorded in `design.layout` rather than split out. A verifier
379
379
  who pins an instrument for 2009 should reconsider that call.
380
380
  sources:
@@ -508,7 +508,7 @@ series:
508
508
  into va-scv-1988: the class boundary moved under it. Modelled as ONE
509
509
  series across 1930-1988 rather than split into the generations the
510
510
  sources describe, because those generation boundaries are exactly the
511
- folklore-prone era boundaries PRD-PLATES §9 warns about and no two
511
+ folklore-prone era boundaries the plates spec §9 warns about and no two
512
512
  sources agree on them.
513
513
  sources:
514
514
  - "https://it.wikipedia.org/wiki/Targhe_d%27immatricolazione_della_Citt%C3%A0_del_Vaticano # SECONDARY: first plates 1930, 'S.C.V.' with dots and a growing number, two-line rear plates, the early-1980s single-line change"
@@ -551,7 +551,7 @@ series:
551
551
  to Art. 10 of a "Regolamento per la circolazione degli autoveicoli" of
552
552
  1930 — A NAMED INSTRUMENT THAT WAS NOT REACHED, in this pass or by any
553
553
  route tried, and which is therefore never cited below as if it had been
554
- read. RECORDED DISAGREEMENT, per PRD-PLATES §5.3: it.wikipedia has red
554
+ read. RECORDED DISAGREEMENT, per the plates spec §5.3: it.wikipedia has red
555
555
  lettering as a CARDINALS-AND-DIGNITARIES entitlement ended in 1998, while
556
556
  targheitaliane.it describes red plates numbered SCV 1-100 serving "the
557
557
  Pope and Cardinals" without an end date. The two accounts cannot both be
data/data/plates/za.yml CHANGED
@@ -1,4 +1,4 @@
1
- # plates/za.yml — South Africa (PRD-PLATES gate L3).
1
+ # plates/za.yml — South Africa (the plates spec gate L3).
2
2
  #
3
3
  # EVERY grammar claim in this file comes from ONE regulation — regulation 27
4
4
  # of the National Road Traffic Regulations, 2000 (GNR.225 of 17 March 2000),
@@ -85,11 +85,11 @@
85
85
  # `format.regex` is the LINT-ROUND-TRIPPABLE regex; `format.regex_strict`
86
86
  # carries the reg 27(2)(a)(ii) proviso alphabet, which `regex` cannot.
87
87
  #
88
- # SEPARATOR NOTE (PRD-PLATES § 2.6): a South African plate prints NO separator
88
+ # SEPARATOR NOTE (the plates spec § 2.6): a South African plate prints NO separator
89
89
  # glyph between the serial groups. Reg 35(3) prescribes the ARRANGEMENT of the
90
90
  # groups ("with all the letters and figures in one line", or the two-line
91
91
  # forms) and never a separator character; the millimetre spacing lives in
92
- # SANS/SABS 1116, a paywalled SABS publication which PRD-PLATES § 6 lets us
92
+ # SANS/SABS 1116, a paywalled SABS publication which the plates spec § 6 lets us
93
93
  # build to and forbids us to reproduce. The space in every `pattern` here is
94
94
  # the conventional textual rendering of that gap, and every regex accepts it
95
95
  # as optional. The hyphen widely printed in the Western Cape ("CA 123-456") is
@@ -175,7 +175,7 @@ instrument:
175
175
  ("This gazette is also available free online at www.gpwonline.co.za")
176
176
  accompanies the Government Gazette text quoted here. SANS/SABS 1116 is a
177
177
  COPYRIGHTED SABS publication and is cited, never reproduced
178
- (PRD-PLATES § 6).
178
+ (the plates spec § 6).
179
179
 
180
180
  # ---------------------------------------------------------------------------
181
181
  # Jurisdiction-wide facts, cited once and referenced per series.
@@ -217,7 +217,7 @@ common:
217
217
  by GNR.404 of 4 May 2007.
218
218
  hex_basis_note: >-
219
219
  The Regulations NAME the colours and never number them; the chromaticity
220
- lives in SANS/SABS 1116, which PRD-PLATES § 6 forbids reproducing. Every
220
+ lives in SANS/SABS 1116, which the plates spec § 6 forbids reproducing. Every
221
221
  hex in this file is therefore `hex_basis: observed` inside a
222
222
  statutorily named colour — the same posture plates/gb.yml takes for BS
223
223
  AU 145e and plates/de.yml for "grünes Kennzeichen".
@@ -232,7 +232,7 @@ common:
232
232
  Free State separately recognises a 305 x 165 mm plate for seven-character
233
233
  personalised numbers (Provincial Notice 278 of 2006) — a size the
234
234
  national regulation does not list, and the discrepancy is recorded, not
235
- averaged (PRD-PLATES § 5.3).
235
+ averaged (the plates spec § 5.3).
236
236
  character_height: >-
237
237
  Reg 35(4): 75 mm is the norm and 60 mm characters may be approved by the
238
238
  MEC for a rear illuminated space too small for 75 mm. The Free State
@@ -261,7 +261,7 @@ common:
261
261
  Vehicles', Part 2: 'Registration plates (metal)' or Part 4: 'Registration
262
262
  plates (plastic)'." Reg 50(1) binds registered manufacturers of number
263
263
  plates to the same two parts.
264
- posture: "cited, never reproduced — SABS 1116 is a paywalled SABS publication (PRD-PLATES § 6)"
264
+ posture: "cited, never reproduced — SABS 1116 is a paywalled SABS publication (the plates spec § 6)"
265
265
  source: "https://disasterlaw.ifrc.org/sites/default/files/media/disaster_law/2021-06/%20ROAD%20TRAFFIC%20REGULATIONS,%202000.pdf # reg 35(1), reg 35(6)(i), reg 50(1)(a)"
266
266
  font:
267
267
  name: "FE-Schrift, modified (\"FE modified\"), 75 mm — 60 mm on the 305 x 165 mm Free State personalised plate"
@@ -289,7 +289,7 @@ series:
289
289
  # "a combination of three letters and three figures in any sequence ...
290
290
  # and the licence mark of the province concerned".
291
291
  # One series per province, because the provincial mark is a LITERAL and
292
- # a series is one format (PRD-PLATES § 2.2).
292
+ # a series is one format (the plates spec § 2.2).
293
293
  # =========================================================================
294
294
 
295
295
  - id: za-gp-standard-3l3f
@@ -405,7 +405,7 @@ series:
405
405
  adds a covert element: the retro-reflective sheeting carries the
406
406
  manufacturer's identifier and "the Province by way of the letters
407
407
  'FS' inside a 12 mm circle interspersed throughout the sheeting".
408
- PRD-PLATES § 3 placeholder rule applies to the cheetah landscape.
408
+ The plates spec § 3 placeholder rule applies to the cheetah landscape.
409
409
  rear_differs: false
410
410
  region_encoding: "plates/_decode/za-licence-marks.yml"
411
411
  sources:
@@ -972,7 +972,7 @@ series:
972
972
  statutory twin is unbounded and `regex` is deliberately narrower at
973
973
  six characters, which is the longest serial any South African
974
974
  provincial system issues. Narrower than the statute is still
975
- `strict` (PRD-PLATES § 2.7); the outer legal bound is in
975
+ `strict` (the plates spec § 2.7); the outer legal bound is in
976
976
  `regex_statutory`, which is exactly what that field is for.
977
977
  design:
978
978
  plate: { w: 520, h: 113, unit: mm }
@@ -1006,7 +1006,7 @@ series:
1006
1006
  categories: [car, van, truck, bus, motorcycle]
1007
1007
  period: { start: 2000 }
1008
1008
  period_evidence: instrument-in-force
1009
- # RECALL-ONLY (PRD-PLATES § 2.7): reg 27(5)(d) delegates the ENTIRE
1009
+ # RECALL-ONLY (the plates spec § 2.7): reg 27(5)(d) delegates the ENTIRE
1010
1010
  # grammar to the Director-General of Foreign Affairs and fixes exactly one
1011
1011
  # thing about it — that the number "shall end in the letter 'D'". No
1012
1012
  # DIRCO determination was located, so the regex below is a shape net built