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,536 @@
1
+ # plates/us-md.yml — Maryland (PRD-PLATES gate L2, mid-Atlantic group).
2
+ #
3
+ # MARYLAND IS THE BEST-LEGISLATED PLATE IN THIS GROUP. Where New York delegates
4
+ # everything and Pennsylvania delegates almost everything, Md. Code, Transp.
5
+ # § 13-410 legislates: how many plates each vehicle CLASS gets, what the plate
6
+ # must display, an OPTIONAL COUNTY-OF-RESIDENCE STICKER, a five-year minimum
7
+ # service life, and — uniquely in this group — AN ACTUAL PLATE DIMENSION IN LAW:
8
+ # § 13-410(g), motorcycle plates 'shall measure 7 inches wide by 4 inches high'.
9
+ # That is the only sourced plate dimension anywhere in the mid-Atlantic pass,
10
+ # and it did not come from SAE J686 (paywalled, unpinned) or from AAMVA — it
11
+ # came from a state legislature.
12
+ #
13
+ # TWO MARYLAND FACTS WORTH THE WHOLE FILE:
14
+ # 1. CLASS F TRACTORS DISPLAY THEIR SINGLE PLATE ON THE FRONT. § 13-411 sends
15
+ # the one plate to the front for Class F and to the rear for everything
16
+ # else. Florida legislates the same inversion for truck tractors in
17
+ # § 320.0706. TWO STATES, INDEPENDENTLY, PUT THE TRACTOR PLATE ON THE
18
+ # FRONT — which turns what looked like a Florida oddity into a pattern the
19
+ # dataset should expect elsewhere.
20
+ # 2. MARYLAND'S HISTORIC THRESHOLD IS A FIXED MODEL YEAR, NOT A ROLLING AGE.
21
+ # § 13-936(a): a historic motor vehicle 'Is a model year of 1999 or
22
+ # earlier'. New York and New Jersey both use rolling 25-year tests; Florida
23
+ # uses a fixed 1945 for Horseless Carriage and a rolling 30 for Antique.
24
+ # A dataset that models only one kind of threshold is wrong about the other.
25
+ #
26
+ # ACCESS NOTE, STATED UP FRONT: mva.maryland.gov returned HTTP 403 to every
27
+ # request in this pass, including with a browser user agent. Everything below
28
+ # therefore comes from the MARYLAND GENERAL ASSEMBLY'S OWN STATUTE SERVICE — the
29
+ # better source under PRD-PLATES §4 anyway (edicts of government beat brochures)
30
+ # — and the agency-only facts, above all the specialty-plate catalogue, are
31
+ # recorded as gaps rather than sourced from elsewhere.
32
+ #
33
+ # period_evidence / format_evidence vocabularies as in us-ny.yml.
34
+ jurisdiction: us-md
35
+ authority:
36
+ name: Maryland Department of Transportation Motor Vehicle Administration (MDOT MVA)
37
+ url: "https://mva.maryland.gov/"
38
+ binding: vehicle
39
+ statute_edition: "Annotated Code of Maryland, Transportation Article, Title 13 (Vehicle Laws - Certificates of Title and Registration of Vehicles), as served by mgaleg.maryland.gov and read 2026-08-02."
40
+
41
+ # ---------------------------------------------------------------------------
42
+ # artwork_risk — required per jurisdiction by PRD-PLATES §4.
43
+ # ---------------------------------------------------------------------------
44
+ artwork_risk:
45
+ posture: unresearched
46
+ basis: >-
47
+ NOTHING WAS FOUND, AND THAT IS THE FINDING — the same honest outcome as
48
+ Delaware. Maryland has NO ENTRY in the Wikipedia survey of subnational
49
+ copyright status (checked, not assumed); no {{PD-MDGov}} template exists on
50
+ Wikimedia Commons, in contrast to the neighbouring {{PD-MAGov}} and
51
+ {{PD-GAGov}} tags that do; and maryland.gov's terms and copyright pages
52
+ returned 404 on both URL guesses attempted, while mva.maryland.gov refused
53
+ every request with a 403. No Maryland copyright statement of any kind was
54
+ read in this pass.
55
+ posture_default: >-
56
+ THE DEFAULT APPLIES: 17 U.S.C. § 105 reaches federal works only, so a
57
+ Maryland state work is COPYRIGHTED UNLESS MARYLAND SAYS OTHERWISE, and
58
+ Maryland has not been found to say otherwise. Recorded as UNRESEARCHED, not
59
+ as adverse — the difference matters, because Maryland may well have a
60
+ favourable public-records posture that simply was not located.
61
+ what_to_chase: >-
62
+ Maryland's Public Information Act (Md. Code, Gen. Prov. §§ 4-101 et seq.) is
63
+ the statutory hook to read for the records-access-versus-copyright question
64
+ that produced Florida's and New Jersey's favourable answers. The Maryland
65
+ State Archives and the Department of Information Technology are the two
66
+ bodies most likely to publish a reuse statement.
67
+ emblem_rule: >-
68
+ RENDER PLACEHOLDER, AND MARYLAND IS THE HARDEST CASE IN THE GROUP TO RENDER
69
+ LEGITIMATELY. The standard plate's whole lower half is the MARYLAND STATE
70
+ FLAG — the Calvert and Crossland quarterings — which is not a decorative
71
+ graphic but the state's heraldic device. State flags and seals carry
72
+ protection INDEPENDENT of copyright under misuse statutes, exactly as
73
+ PRD-PLATES §4.5 flags, and that question is unresearched here as it is
74
+ everywhere. A neutral placeholder in the flag slot is the only defensible
75
+ v1 render.
76
+ photograph_caution: "Standard §4 reading: Commons photographs carry the photographer's licence on the photograph and say nothing about the design. No Maryland image was fetched in this pass — MVA refused every request."
77
+ sources:
78
+ - "https://en.wikipedia.org/wiki/Copyright_status_of_works_by_subnational_governments_of_the_United_States # LOCATOR ONLY: Maryland has NO ENTRY in this survey - checked, not assumed"
79
+ - "https://commons.wikimedia.org/wiki/Commons:Copyright_rules_by_territory/United_States # the state-exclusion rule and the roster of state PD tags that exist - Maryland is absent from it"
80
+
81
+ # ---------------------------------------------------------------------------
82
+ # The US standards chain. Voluntary; J686 never quoted — AND MARYLAND SHOWS WHY
83
+ # THAT RULE IS SURVIVABLE.
84
+ # ---------------------------------------------------------------------------
85
+ us_standards:
86
+ no_federal_mandate: true
87
+ chain: "SAE J686 -> AAMVA License Plate Standard Edition 3 (September 2025) -> voluntary state adoption."
88
+ aamva_edition_3:
89
+ dimensions_delegated: >-
90
+ AAMVA §3.1 sends plate dimensions and bolt holes to SAE J686, whose text is
91
+ paywalled and was NOT obtained, so no J686 dimension is quoted anywhere in
92
+ this dataset. MARYLAND ROUTES AROUND THE PROBLEM: § 13-410(g) states a
93
+ dimension in law — 'Class D (motorcycle) registration plates shall measure
94
+ 7 inches wide by 4 inches high'. That is a fully sourced, freely quotable
95
+ US plate dimension obtained without touching J686, and it is the first one
96
+ in this dataset. The passenger-plate dimension remains unsourced because
97
+ Maryland does not state it.
98
+ retroreflectivity: >-
99
+ AAMVA §3.3 recommends retroreflective materials per ASTM D4956-19 and
100
+ ISO 7591:1982. Maryland makes reflectorisation a BUDGET question, not a
101
+ design one: § 13-410(d) requires plates manufactured to last at least five
102
+ years and provides that reflectorization requires General Assembly budget
103
+ approval. A legislature conditioning a plate's optical properties on an
104
+ appropriation is a modelling fact nothing else in this dataset shows.
105
+ replacement_cycle: "AAMVA §1.1 recommends a cycle 'not to exceed 7 to 10 years'. Maryland legislates a MINIMUM SERVICE LIFE instead — five years under § 13-410(d) — plus a condition-triggered power in § 13-410(e)(3) for the Administrator to evaluate plate condition and issue new plates as needed. A floor plus discretion, where Florida sets a ceiling and Pennsylvania mandates a programme."
106
+ source: "https://www.aamva.org/getmedia/646bcc8a-219b-47d8-b5cd-726240473163/License-Plate-Standard-Edition-3_September-2025-Update.pdf"
107
+ folklore_caution: "The '1956 AMA standardization agreement' is UNCITED in its Wikipedia source and is recorded as COMMONLY REPEATED, UNSOURCED. Maryland's 7x4 inch motorcycle plate is instead cited to § 13-410(g), which states it in law."
108
+
109
+ # ---------------------------------------------------------------------------
110
+ # Display rules — legislated by VEHICLE CLASS, which is what makes Maryland
111
+ # unusual. The plate COUNT is a function of the registration class.
112
+ # ---------------------------------------------------------------------------
113
+ display_rules:
114
+ plate_count_by_class: >-
115
+ § 13-410(a)(1): the Administration issues ONE registration plate for a Class
116
+ D (motorcycle), Class F (tractor), Class G (trailer), Class L (historic)
117
+ vehicle manufactured at least 50 years before the current model year, or
118
+ Class N (street rod) vehicle manufactured at least 50 years before the
119
+ current model year; and TWO registration plates 'for every other vehicle'.
120
+ § 13-410(a)(2): for a temporary registration the Administration may provide
121
+ only one plate. NOTE THE COMPOUND TEST ON CLASSES L AND N — a historic
122
+ vehicle gets one plate only if it is ALSO at least 50 model years old, so a
123
+ 1999-model historic vehicle gets TWO plates while a 1965 one gets one.
124
+ display_position: "§ 13-411: two-plate vehicles display front and rear. For single-plate vehicles the plate goes on the FRONT for Class F (tractor) and on the REAR for all others."
125
+ front_plate_outlier: >-
126
+ MARYLAND PUTS THE TRACTOR PLATE ON THE FRONT — the same inversion Florida
127
+ legislates in § 320.0706 for truck tractors. Two states reaching the same
128
+ unusual rule independently makes this a PATTERN to look for, not a Florida
129
+ quirk. Any consumer modelling 'front plate required?' as a single per-state
130
+ boolean will be wrong about both states.
131
+ legibility: "§ 13-411: plates shall be 'maintained free from foreign materials' and 'in a condition to be clearly legible'."
132
+ mounting: "§ 13-411: plates shall be 'securely fastened' horizontally, in a manner that prevents swinging, and shall remain 'clearly visible'."
133
+ prohibitions: "§ 13-411: no display of expired plates, no display of plates issued to another vehicle, and vintage plates only under the specific conditions the section states."
134
+ validation_tabs: "§ 13-410(e): the Administrator may order continued use of valid plates with ANNUAL VALIDATION TABS evidencing payment of the registration fee, displayed as the Administrator requires, and may evaluate plate condition and issue new plates as needed."
135
+ sources:
136
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # Md. Code, Transp. § 13-410: (a)(1) one plate for Classes D, F, G and 50-year-old L and N, two for every other vehicle; (a)(2) one temporary plate; (b) plate content; (c) the county sticker option; (d) five-year service life and the reflectorization appropriation; (e) validation tabs; (f) §§ 13-618/13-619 reflectorized plates; (g) MOTORCYCLE PLATES 7 IN WIDE BY 4 IN HIGH; (h) return by mail"
137
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-411&enactments=false # Md. Code, Transp. § 13-411: front and rear for two-plate vehicles; FRONT for single-plate Class F tractors and REAR for all other single-plate vehicles; free from foreign materials, clearly legible, securely fastened horizontally, no swinging, clearly visible; the expired-plate, wrong-vehicle and vintage-plate prohibitions"
138
+
139
+ # ---------------------------------------------------------------------------
140
+ # REGION ENCODING — Maryland's county marker is a STICKER, and it is OPTIONAL.
141
+ # ---------------------------------------------------------------------------
142
+ region_encoding_note:
143
+ mechanism: sticker-optional
144
+ text: >-
145
+ § 13-410(c) lets the owner of a Class A (passenger), Class E (truck
146
+ registered under § 13-917) or Class M (multipurpose) vehicle OPTIONALLY
147
+ display a sticker indicating the COUNTY OF RESIDENCE on the registration
148
+ plate. The Administration approves the designs and must offer the option to
149
+ applicants; it may charge a fee not exceeding its costs. An owner MAY NOT
150
+ display a sticker for a county other than their own, and county stickers may
151
+ NOT be placed on special or commemorative plates.
152
+ consequence: >-
153
+ THE COUNTY IS NEVER IN THE SERIAL. Maryland's geography is an optional
154
+ adhesive on the plate face, so a Maryland serial decodes to nothing
155
+ geographic and a Maryland PHOTOGRAPH may decode to a county that the serial
156
+ cannot. It is the mirror image of Florida, where the county appears as a
157
+ printed LEGEND subject to a county-commission opt-out. Two states, two
158
+ different ways of putting a county on a plate, and neither puts it in the
159
+ number — which is a real finding about US plates as a class: unlike Germany,
160
+ Spain or Italy, US serials are geographically opaque.
161
+ source: "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # § 13-410(c)(1)-(6)"
162
+
163
+ series:
164
+
165
+ # =========================================================================
166
+ # THE CURRENT STANDARD-ISSUE SERIES.
167
+ # =========================================================================
168
+ - id: us-md-maryland-proud
169
+ class: standard
170
+ categories: [car, van, truck, bus]
171
+ period: { start: 2016 }
172
+ period_evidence: secondary-locator-unverified
173
+ format_evidence: secondary-locator-unverified
174
+ matching: strict
175
+ format:
176
+ pattern: "9LL9999"
177
+ regex: '\A\d[A-Z]{2}\d{4}\z'
178
+ charset:
179
+ notes: >-
180
+ THE STATUTORY CONSTRAINT IS TWO SENTENCES. § 13-410(b)(1): 'Each
181
+ registration plate shall display the registration number assigned to
182
+ the vehicle and the name of Maryland, which may be abbreviated.'
183
+ § 13-410(b)(2): 'The registration number may consist of letters,
184
+ numerals, or both.' No length, no alphabet, no exclusions — the same
185
+ shape as Florida's statute minus Florida's seven-character cap. No
186
+ Maryland letter exclusions are published anywhere.
187
+ pattern_note: >-
188
+ NO PRINTED SEPARATOR ON THIS BASE. The locator writes the current format
189
+ as 1AB2345 with no separator glyph, in deliberate contrast to the base
190
+ before it, which it writes as 1A/B2345 — the slash standing for the US
191
+ flag graphic that base printed between the second and third characters.
192
+ Maryland therefore DROPPED its graphic separator at the 2016 base change,
193
+ which is the mirror of what Pennsylvania did with its hyphen in 2025.
194
+ progression: "reported to run 8CN0000 onward, reaching 1HA3202 as of 7 March 2026 (locator). The leading digit CYCLES rather than counting, which is why the reported progression appears to run backwards from 8 to 1."
195
+ design:
196
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
197
+ foreground: "#1A1A1A"
198
+ colour_note: >-
199
+ NO COLOUR VALUE IS IN THE STATUTE. § 13-410 states plate CONTENT, service
200
+ life and dimensions for motorcycles, and says nothing about hue;
201
+ § 13-410(d) treats reflectorisation as a budget matter. Black embossed
202
+ characters on reflective white with the state name in RED are reported
203
+ and observed; all three are `hex_basis: observed`.
204
+ legend_top: "Maryland"
205
+ legend_top_colour: { value: "#C8102E", hex_basis: observed, note: "the state name is screened in RED, unusually - most US plates set the jurisdiction name in the same colour as the serial" }
206
+ graphic:
207
+ present: true
208
+ rendered: placeholder
209
+ description: "THE MARYLAND STATE FLAG, screened across the whole lower half of the plate. This is the state's heraldic device, not an illustration, and it is the reason Maryland's emblem_rule is the strictest in this group."
210
+ emblem: { present: true, rendered: placeholder }
211
+ band: { side: none }
212
+ rear_differs: false
213
+ manufacture: "serial EMBOSSED, flag SCREENED (locator) - a mixed-process plate, which matters to a render that models relief."
214
+ service_life: "at least five years by statute (§ 13-410(d))"
215
+ dimension_note: "NO SOURCED DIMENSION FOR THE PASSENGER PLATE. Maryland states one only for motorcycles (§ 13-410(g), 7 in x 4 in); SAE J686 is unpinned."
216
+ county_sticker: { available: true, basis: "§ 13-410(c) - optional, county of residence only, not on special or commemorative plates. See region_encoding_note." }
217
+ region_encoding: "none in the serial; see region_encoding_note for the optional county STICKER, which is the only geographic marker Maryland puts on a plate."
218
+ sources:
219
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # § 13-410(b) the plate must display the registration number and the name of Maryland; the number 'may consist of letters, numerals, or both'; (c) the county sticker; (d) the five-year service life"
220
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-411&enactments=false # § 13-411 display: front and rear for this class of vehicle"
221
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Maryland # LOCATOR ONLY (PRD-PLATES §4): 'Maryland Proud' from 26 September 2016, 1AB2345 from 8CN0000 to 1HA3202 (7 March 2026), black embossed serial on reflective white with the state flag screened in the bottom half and 'Maryland' screened in red at the top"
222
+ notes: >-
223
+ MARYLAND PROUD (2016-) — THE CURRENT STANDARD ISSUE. The statute is strong
224
+ and the DESIGN HISTORY is weak, and the file says so: everything about the
225
+ plate's legal frame is § 13-410, and everything about which design is
226
+ current, when it started and what serial it started at is locator-grade,
227
+ because mva.maryland.gov refused every request in this pass with an HTTP
228
+ 403. That is the single most important gap in this file. PARALLEL
229
+ ISSUANCE: Maryland's five-year minimum service life is a FLOOR, not a
230
+ ceiling, and no recall of the 2010 base was located, so War of 1812 plates
231
+ remain current registrations — which is why the two series overlap at 2016
232
+ with distinct notes.
233
+
234
+ # =========================================================================
235
+ # ONE SERIES BACK — and the one that printed a FLAG inside its serial.
236
+ # =========================================================================
237
+ - id: us-md-war-of-1812
238
+ class: standard
239
+ categories: [car, van, truck, bus]
240
+ period: { start: 2010, end: 2016 }
241
+ period_evidence: secondary-locator-unverified
242
+ format_evidence: secondary-locator-unverified
243
+ matching: strict
244
+ format:
245
+ pattern: "9L L9999"
246
+ regex: '\A\d[A-Z] ?[A-Z]\d{4}\z'
247
+ charset: { notes: "as the current base - no statutory charset. Reported range 1M/D0000 to 9M/D9999, then 1A/A0000 to approximately 7C/N9999." }
248
+ separator_note: >-
249
+ THE SEPARATOR ON THIS BASE IS A GRAPHIC, NOT A CHARACTER. The locator
250
+ writes the format as 1A/B2345, using a slash to stand for the US flag
251
+ device the plate printed between the second and third characters. The
252
+ dataset spells the gap as an EMITTED SPACE and carries the flag in
253
+ `design.graphic`, on exactly the reasoning `_meta/separators.yml`'s
254
+ `never_separator_note` gives for German and Austrian coats of arms, and
255
+ exactly as New Jersey's state-outline separator is handled in us-nj.yml.
256
+ A SOLIDUS could not be spelled even if it were printed: '/' is in the
257
+ FORGIVING set but not the EMITTED set, so the lint would reject it.
258
+ design:
259
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
260
+ foreground: "#003087"
261
+ colour_note: "blue on reflective white (locator); `hex_basis: observed`. No colour value in statute."
262
+ legend_top: "Maryland"
263
+ graphic:
264
+ present: true
265
+ rendered: placeholder
266
+ description: "War of 1812 bicentennial commemorative: a US flag device (which doubles as the serial separator) and a Fort McHenry silhouette. A COMMEMORATIVE DESIGN SERVING AS THE STANDARD ISSUE for six years — Maryland ran its bicentennial plate as the default base, which is a policy choice most states reserve for optional specialty plates."
267
+ emblem: { present: true, rendered: placeholder }
268
+ band: { side: none }
269
+ county_sticker: { available: true, basis: "§ 13-410(c)" }
270
+ region_encoding: "none in the serial; optional county sticker per § 13-410(c)."
271
+ sources:
272
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # the statutory frame is unchanged across the base change - § 13-410 did not move"
273
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Maryland # LOCATOR ONLY: War of 1812 200th anniversary commemorative, 14 June 2010 to 25 September 2016, blue on reflective white with US flag and Fort McHenry silhouette, format 1A/B2345 from 1M/D0000"
274
+ notes: >-
275
+ WAR OF 1812 (2010-2016) — THE PREVIOUS BASE. It matters to the schema out
276
+ of proportion to its age because it is the second GRAPHIC SEPARATOR in the
277
+ mid-Atlantic group after New Jersey's state outline, and the two together
278
+ establish that a US plate's serial gap being filled by a device is a
279
+ RECURRING pattern rather than a one-off. `end: 2016` closes ISSUANCE, not
280
+ validity: these plates are still lawfully on Maryland roads.
281
+
282
+ # =========================================================================
283
+ # CORE DISTINCT CLASSES.
284
+ # =========================================================================
285
+ - id: us-md-motorcycle
286
+ class: motorcycle
287
+ categories: [motorcycle]
288
+ period: { start: 2016 }
289
+ period_evidence: secondary-locator-unverified
290
+ format_evidence: secondary-locator-unverified
291
+ matching: strict
292
+ format:
293
+ pattern: "999Y99"
294
+ regex: '\A\d{3}Y\d{2}\z'
295
+ charset:
296
+ notes: >-
297
+ The Y IS A LITERAL CLASS MARKER, not a placeholder — the locator gives
298
+ the reported range as 000Y01 onward, which fixes Y in the fourth
299
+ position across the whole series. Maryland has moved the marker around
300
+ repeatedly: reported arrangements run 123M45 (2003-06), 1D2345
301
+ (2006-09), D12345 (2009-10), 12345Y (2010-16) and 123Y45 (2016-),
302
+ i.e. the class letter has migrated from the middle to the front to the
303
+ end and back to the middle in twenty years. Only the current
304
+ arrangement is given a series.
305
+ design:
306
+ plate: { w: 7, h: 4, unit: in, w_mm: 177.8, h_mm: 101.6 }
307
+ plate_dimension_note: >-
308
+ § 13-410(g), IN LAW: 'Class D (motorcycle) registration plates shall
309
+ measure 7 inches wide by 4 inches high.' THE ONLY SOURCED PLATE
310
+ DIMENSION IN THE ENTIRE MID-ATLANTIC GROUP, and it did not come through
311
+ the AAMVA/J686 chain — a state legislature simply stated it. It is
312
+ recorded here in inches as the statute gives it, with the millimetre
313
+ conversion computed, not sourced.
314
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
315
+ foreground: "#1A1A1A"
316
+ legend_top: "Maryland"
317
+ graphic: { present: true, rendered: placeholder, description: "as the Maryland Proud passenger base (locator)" }
318
+ emblem: { present: true, rendered: placeholder }
319
+ region_encoding: none
320
+ sources:
321
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # § 13-410(g): 'Class D (motorcycle) registration plates shall measure 7 inches wide by 4 inches high'; § 13-410(a)(1)(i) one plate for Class D"
322
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Maryland # LOCATOR ONLY: 123Y45 from December 2016, range 000Y01 onward, and the five superseded motorcycle arrangements"
323
+ notes: >-
324
+ MOTORCYCLE (CLASS D) — THE ONLY SERIES IN THIS GROUP WITH A DIMENSION.
325
+ § 13-410(g)'s 7 x 4 inches is the answer to a question the whole US slice
326
+ has been unable to answer since SAE J686 turned out to be paywalled: it
327
+ shows that per-state statutes CAN supply renderable geometry, and that the
328
+ right research move for US dimensions is to read fifty vehicle codes rather
329
+ than to buy one SAE standard.
330
+
331
+ - id: us-md-state-government
332
+ class: government
333
+ categories: [car, van, truck, bus]
334
+ period: { start: 2014 }
335
+ period_evidence: secondary-locator-unverified
336
+ format_evidence: secondary-locator-unverified
337
+ matching: strict
338
+ binding: business
339
+ format:
340
+ pattern: "99999"
341
+ regex: '\A\d{5}\z'
342
+ charset:
343
+ notes: >-
344
+ Five numerals. THE CLASS MARKER IS NOT IN THE SERIAL: the locator
345
+ writes the format as '12345 S/G', where S/G is a legend printed after
346
+ the number rather than a serial token. THE DATASET CANNOT SPELL IT
347
+ EVEN IF IT WANTED TO — SOLIDUS is in `_meta/separators.yml`'s FORGIVING
348
+ set but not its EMITTED set, so a literal '/' in a pattern or regex is
349
+ a lint failure by design. It is therefore carried as `legend_bottom`,
350
+ which is where it belongs: it is printed matter, not serial.
351
+ design:
352
+ background: { finish: retroreflective }
353
+ foreground: "#1A1A1A"
354
+ legend_top: "Maryland"
355
+ legend_bottom: "S/G"
356
+ emblem: { present: true, rendered: placeholder }
357
+ fee_exemption: "Md. Code, Transp. § 13-903 exempts from registration fees vehicles owned by 'The United States, this State, or any political subdivision', volunteer fire companies and rescue squads, Civil Air Patrol units, veterans' organisations and Red Cross chapters — and requires that 'Each registered vehicle that is exempt from registration fees under subsection (a) of this section shall display a SPECIAL IDENTIFICATION MARKER approved by the Administrator.' The government plate is that marker's statutory home."
358
+ region_encoding: none
359
+ sources:
360
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-903&enactments=false # § 13-903: the registration-fee exemption list and the special identification marker requirement"
361
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Maryland # LOCATOR ONLY: state government '12345 S/G' from 2014"
362
+ notes: >-
363
+ STATE GOVERNMENT. The statutory hook (§ 13-903's 'special identification
364
+ marker') is solid; the serial form is locator-grade. The S/G legend is a
365
+ small but clean demonstration of the separator contract doing its job —
366
+ the dataset's refusal to spell a solidus forced the marker into the design
367
+ layer, which is where it actually lives on the plate.
368
+
369
+ - id: us-md-local-government
370
+ class: government
371
+ categories: [car, van, truck, bus]
372
+ period: { start: 2014 }
373
+ period_evidence: secondary-locator-unverified
374
+ format_evidence: secondary-locator-unverified
375
+ matching: strict
376
+ binding: business
377
+ format:
378
+ pattern: "99999"
379
+ regex: '\A\d{5}\z'
380
+ charset: { notes: "five numerals with an L/G legend, on the same reasoning as the S/G series above. NOTE THE CONSEQUENCE: state and local government serials are drawn from the same shape, so the SERIAL ALONE CANNOT DISTINGUISH THEM - only the legend can. Maryland's government plates are the second ambiguity of this kind in the group, after Delaware's motorcycle/passenger numerics." }
381
+ design:
382
+ background: { finish: retroreflective }
383
+ foreground: "#1A1A1A"
384
+ legend_top: "Maryland"
385
+ legend_bottom: "L/G"
386
+ emblem: { present: true, rendered: placeholder }
387
+ region_encoding: none
388
+ sources:
389
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-903&enactments=false # § 13-903 exempts vehicles of 'any political subdivision' and requires the special identification marker"
390
+ - "https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Maryland # LOCATOR ONLY: local government '12345 L/G' from 2014"
391
+ notes: >-
392
+ LOCAL GOVERNMENT. Its own series because the legend differs and the
393
+ issuing population differs (political subdivisions rather than the State),
394
+ but sharing a serial shape with the state series — which is exactly the
395
+ case that forces a parse API to return multiple candidates rather than one
396
+ answer.
397
+
398
+ # =========================================================================
399
+ # HISTORIC — Maryland's threshold is a FIXED MODEL YEAR and the use
400
+ # restrictions are the most detailed in the group.
401
+ # =========================================================================
402
+ - id: us-md-historic
403
+ class: historic
404
+ categories: [car, truck, motorcycle]
405
+ period: { start: 2016 }
406
+ period_evidence: statutory-authority-undated
407
+ format_evidence: secondary-locator-unverified
408
+ matching: recall-only
409
+ format:
410
+ pattern: "999999"
411
+ regex: '\A[A-Z0-9](?:[- ]?[A-Z0-9]){0,7}\z'
412
+ charset:
413
+ notes: >-
414
+ NO FORMAT SOURCE EXISTS. § 13-936(f) says only that the Administration
415
+ 'shall issue a special, historic motor vehicle registration plate OF
416
+ THE SIZE AND DESIGN THAT THE ADMINISTRATION DETERMINES', and the
417
+ determination was not obtained (mva.maryland.gov 403). `matching:
418
+ recall-only` is the honest encoding: this regex is a deliberately wide
419
+ catch-all over Maryland-shaped serials and a match is a shape hit only,
420
+ never a claim that the string is a valid historic registration.
421
+ eligibility:
422
+ definition: "§ 13-936(a): a 'historic motor vehicle' means a motor vehicle, including a passenger vehicle, motorcycle or truck, that (1) 'Is a model year of 1999 or earlier'; (2) 'Has not been substantially altered from the manufacturer's original design'; and (3) meets criteria in regulations adopted by the Administration."
423
+ exclusion: "§ 13-936(b): the definition 'does not include a vehicle that has been remanufactured or reconstructed as a replica of an original vehicle'."
424
+ threshold_type: fixed-model-year
425
+ threshold_note: >-
426
+ MARYLAND'S THRESHOLD IS FIXED AT MODEL YEAR 1999 AND DOES NOT ROLL. It
427
+ will therefore ADMIT NO NEW VEHICLES EVER, and the eligible population
428
+ shrinks every year as 1999-and-earlier cars leave the road — the exact
429
+ opposite dynamic to New York's and New Jersey's rolling 25-year tests,
430
+ which admit a new model year annually. Florida runs BOTH kinds at once
431
+ (fixed 1945 Horseless Carriage, rolling 30-year Antique). Only the
432
+ rolling kind needs annual re-auditing; the fixed kind needs watching for
433
+ a legislative bump.
434
+ use_restriction: "§ 13-936(e): the owner must certify that the vehicle 'Will be maintained for use in exhibitions, club activities, parades, tours, and occasional transportation' and 'Will not be used' (i) for general daily transportation; (ii) primarily for the transportation of passengers or property on highways; (iii) for employment; (iv) for transportation to and from employment or school; or (v) for commercial purposes."
435
+ fees: "§ 13-936(d): annual registration fee $45.50 on or after 1 July 2024 but before 1 July 2025, and $55.50 on or after 1 July 2025. § 13-936(i): for a vehicle manufactured at least 60 years before the current model year there is instead a ONE-TIME $50 registration fee, and that registration is NOT TRANSFERABLE to a subsequent owner."
436
+ exemptions: "§ 13-936(g): no specific equipment is required unless a Maryland statute required it as a condition of sale when the vehicle was manufactured. § 13-936(h): a vehicle of model year 1985 or earlier is exempt from statutory inspection requirements, and ANY vehicle registered under this section is exempt from emission-control use and inspection requirements."
437
+ plate_count: "ONE plate if the vehicle was manufactured at least 50 years before the current model year, TWO otherwise (§ 13-410(a)(1)(i)4). A compound test that splits the historic class in half by age."
438
+ design:
439
+ background: { finish: retroreflective }
440
+ legend_top: "Maryland"
441
+ note: "size and design are whatever the Administration determines (§ 13-936(f)); no determination was obtained."
442
+ emblem: { present: true, rendered: placeholder }
443
+ region_encoding: none
444
+ sources:
445
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-936&enactments=false # Md. Code, Transp. § 13-936: (a) the fixed model-year-1999 definition and the not-substantially-altered test; (b) the replica exclusion; (c) Class L; (d) the $45.50 / $55.50 fees; (e) the five-part use restriction and the certification; (f) 'of the size and design that the Administration determines'; (g) the equipment exemption; (h) the 1985 inspection exemption and the blanket emissions exemption; (i) the 60-year one-time $50 non-transferable registration"
446
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # § 13-410(a)(1)(i)4: one plate for a Class L vehicle manufactured at least 50 years before the current model year"
447
+ notes: >-
448
+ HISTORIC (CLASS L) — THE RICHEST ELIGIBILITY TEXT IN THE MID-ATLANTIC
449
+ GROUP AND NO FORMAT AT ALL. That combination is why `recall-only` exists:
450
+ Maryland tells us precisely who may hold this plate, for what uses, at
451
+ what fee, with what inspection consequences, and then hands the plate's
452
+ appearance and numbering entirely to the Administration, whose site
453
+ refused every request. A verifier who can reach mva.maryland.gov closes
454
+ this in one page. Note also the § 13-936(i) 60-year one-time fee makes the
455
+ REGISTRATION non-transferable — a rare case of a US plate right dying with
456
+ the owner, the opposite of Delaware's tradeable low numbers.
457
+
458
+ # =========================================================================
459
+ # SPECIALTY — THE PROGRAM INDEX, per PRD-PLATES §2.5. Statute only; the
460
+ # agency catalogue was unreachable.
461
+ # =========================================================================
462
+ - id: us-md-specialty-index
463
+ class: specialty
464
+ categories: [car, truck, motorcycle]
465
+ period: { start: 2016 }
466
+ period_evidence: statutory-authority-undated
467
+ format_evidence: statutory
468
+ matching: strict
469
+ format:
470
+ pattern: "9LL9999"
471
+ regex: '\A\d[A-Z]{2}\d{4}\z'
472
+ charset:
473
+ notes: >-
474
+ § 13-619 gives the organisation a genuine say in its own serial:
475
+ organisations may choose plates featuring 'any combination of letters,
476
+ numerals, or both' together with the organisation's name, initials or
477
+ abbreviation, optionally including 'an emblem or logo as authorized by
478
+ the Administration'. SO A MARYLAND SPECIALTY SERIAL IS NOT NECESSARILY
479
+ THE STANDARD ARRANGEMENT — the statute permits per-organisation
480
+ grammars. The regex here describes the standard arrangement and is
481
+ therefore narrower than the statute allows; the catalogue that would
482
+ reveal the exceptions is behind the 403.
483
+ design:
484
+ background: { finish: retroreflective }
485
+ note: "one design per approved organisation; the designs themselves are L4 scope (PRD-PLATES §2.5) and none is described here"
486
+ emblem: { present: true, rendered: placeholder }
487
+ program_index:
488
+ count_official: null
489
+ count_official_note: >-
490
+ NO COUNT WAS OBTAINED AND NONE IS INVENTED. MDOT MVA's plate pages
491
+ (mva.maryland.gov/vehicles/Pages/licenseplates/general.aspx and
492
+ .../organizational.aspx) returned HTTP 403 to every request in this pass,
493
+ including with a browser user agent, so Maryland's specialty catalogue
494
+ is UNREAD. This is a pure access failure, not an absence of data.
495
+ creation_threshold: "§ 13-619: 'At least 25 vehicle owners in each class must apply initially.' THE LOWEST CREATION BAR IN THE MID-ATLANTIC GROUP — one eighth of Delaware's 200. Two states, two orders of magnitude, and it is the single best predictor of how many designs a state ends up with."
496
+ eligible_classes: "§ 13-619: Class A (passenger), Class E (truck of manufacturer's rated capacity one ton or less) and Class M (multipurpose); motorcyclists may register Class D vehicles if members of exempt organisations."
497
+ design_authority: "§ 13-619: organisations may choose 'any combination of letters, numerals, or both' with the organisation's name, initials or abbreviation, and optionally 'an emblem or logo as authorized by the Administration'."
498
+ fee_rule: "§ 13-619: an additional fee applies when new plates are issued, and the Administration 'may not exceed the amount required to enable the Administration to recover its costs'. COST-RECOVERY ONLY — Maryland does not use its specialty programme as a revenue instrument the way Florida's annual use fees do."
499
+ fee_exemptions: "§ 13-619 exempts from the fee certain vehicles and those honouring the Maryland National Guard or volunteer emergency services; a SURVIVING SPOUSE may qualify where the deceased spouse held an active special registration number."
500
+ official_urls:
501
+ - "https://mva.maryland.gov/vehicles/Pages/licenseplates/general.aspx # HTTP 403 in this pass - unread"
502
+ - "https://mva.maryland.gov/vehicles/Pages/licenseplates/organizational.aspx # HTTP 403 in this pass - unread"
503
+ churn_note: "no discontinuation rule was located in § 13-619; recorded gap."
504
+ region_encoding: "none. NOTE § 13-410(c)(6): county stickers may NOT be placed on special or commemorative plates - so a Maryland specialty plate cannot carry the county marker the standard plate can."
505
+ sources:
506
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-619&enactments=false # Md. Code, Transp. § 13-619: the nonprofit-organisation special plate, the 25-owner threshold per class, the eligible vehicle classes, the letters/numerals/emblem design latitude, cost-recovery-only fees, the National Guard and volunteer emergency service exemptions, and the surviving-spouse provision"
507
+ - "https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtr&section=13-410&enactments=false # § 13-410(c)(6): county stickers may not be placed on special or commemorative plates; § 13-410(f): reflectorized plates may be issued under §§ 13-618 and 13-619"
508
+ notes: >-
509
+ THE SPECIALTY PROGRAM INDEX — STATUTE-ONLY, BY NECESSITY. Maryland is the
510
+ inverse of Delaware: Delaware publishes a complete list and no statutory
511
+ threshold in plain sight, Maryland publishes a precise statutory threshold
512
+ and a catalogue nobody outside can read. Recording the 25-owner bar and an
513
+ explicit null count is the honest output, and the 403 is the named,
514
+ fixable obstacle. A verifier on a residential connection will very likely
515
+ get straight through.
516
+
517
+ # ---------------------------------------------------------------------------
518
+ # CLASSES MARYLAND ISSUES THAT ARE DELIBERATELY NOT MODELLED AS SERIES.
519
+ # ---------------------------------------------------------------------------
520
+ unmodelled_classes:
521
+ trailer: "Class G trailers get ONE plate under § 13-410(a)(1)(i)3, so the class is statutory — but no trailer serial format was obtained from any source. Recorded gap rather than an invented pattern."
522
+ dealer: "Maryland registers dealers and issues dealer plates, but no format source was obtained and § 13-903 (which was read) turned out to be the fee-exemption section rather than the dealer-plate section. The dealer-plate provision was not located in this pass."
523
+ temporary: "the locator reports a 60-day BLUE ON WHITE CARDBOARD temporary registration, machine-printed, in use since 2013. § 13-410(a)(2) confirms the class statutorily ('only one temporary registration plate for any vehicle'), but no serial format was obtained. Recorded gap."
524
+ street_rod: "Class N street rod vehicles are named in § 13-410(a)(1)(i)5 and get one plate when at least 50 model years old. No format, no eligibility text obtained (§ 13-936.1 is cross-referenced by § 13-936(f) and was not pulled). Recorded gap."
525
+
526
+ # ---------------------------------------------------------------------------
527
+ # GAPS.
528
+ # ---------------------------------------------------------------------------
529
+ gaps:
530
+ - "mva.maryland.gov RETURNED 403 TO EVERY REQUEST, including with a browser user agent. The specialty catalogue, the historic plate design determination, the trailer/dealer/temporary formats and every agency-stated design fact are unread because of it. THIS IS THE SINGLE LARGEST FIXABLE GAP IN THE MID-ATLANTIC GROUP."
531
+ - "ARTWORK POSTURE UNRESEARCHED — no Maryland copyright statement located; maryland.gov terms pages 404'd on both guesses. Read the Maryland Public Information Act."
532
+ - "NO SOURCED DIMENSION FOR THE PASSENGER PLATE — only the motorcycle plate is dimensioned in law (§ 13-410(g))."
533
+ - "NO SOURCED COLOUR VALUE; § 13-410 states none and treats reflectorisation as an appropriation question."
534
+ - "Base-design years (2016, 2010) and all serial ranges are locator-grade."
535
+ - "COMAR Title 11 Subtitle 15 (the MVA regulations § 13-936(a)(3) and § 13-619 delegate to) was not obtained — dsd.maryland.gov redirects to regs.maryland.gov and the target 404'd."
536
+ - "§ 13-936.1 (cross-referenced from § 13-936(f), presumably street rod plates) not pulled."