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,1375 @@
1
+ # plates/kr.yml — Republic of Korea (PRD-PLATES gate L3).
2
+ #
3
+ # EVERY dimension, colour, layout, class-code range and use-syllable claim in
4
+ # this file comes from ONE instrument and its annexes: 「자동차 등록번호판 등의
5
+ # 기준에 관한 고시」 — the Ministry of Land, Infrastructure and Transport
6
+ # Notice on the standards for motor-vehicle registration plates — as in force,
7
+ # 국토교통부고시 제2025-121호, promulgated and in force 15 March 2025 (with the
8
+ # Article 2(2) / 4(2) / 5(2)-(3) amendments in that notice taking effect
9
+ # 20 March 2026, and Annex 15-2 item 2 as further amended by 국토교통부고시
10
+ # 제2025-676호 of 27 November 2025, likewise from 20 March 2026). Period claims
11
+ # are taken from that notice's 부칙 (supplementary provisions), which is the
12
+ # richest era source secured for any jurisdiction in this gate: it dates each
13
+ # reform to the day.
14
+ #
15
+ # THE CHAIN OF AUTHORITY, top to bottom, because it decides what is law and
16
+ # what is administrative practice:
17
+ # 1. 「자동차관리법」 (Motor Vehicle Management Act, Act No. 21817) Article 10
18
+ # requires the plate to be affixed and forbids removing or obscuring it.
19
+ # It says NOTHING about what a mark is made of.
20
+ # 2. 「자동차등록령」 (Presidential Decree) Article 21(1), verbatim:
21
+ # "등록번호는 법 제3조에 따른 자동차의 종류와 자동차의 용도(자동차운수사업용인
22
+ # 것과 자동차운수사업용이 아닌 것으로 구분한다)에 따라 국토교통부장관이
23
+ # 정하여 고시하는 기준에 의하여 각각 순서대로 부여한다."
24
+ # -> the COMPOSITION of a Korean mark is delegated, entirely, to a
25
+ # ministerial notice. Same shape as Germany (§9 FZV -> Bundesanzeiger) and
26
+ # Britain (VERA 1994 §23 -> DVLA INF104) — but Korea's delegate publishes
27
+ # the whole grammar, with millimetre drawings, which the other two do not.
28
+ # 3. 「자동차관리법 시행규칙」 (Enforcement Rule) Article 6 splits規格/재질/색상
29
+ # by type and use, and Article 6(3) re-delegates the detail to the notice
30
+ # "after prior consultation with the Commissioner General of the National
31
+ # Police Agency".
32
+ # 4. The notice itself, Articles 1-3 to 6 and Annexes 1 to 18.
33
+ #
34
+ # ---------------------------------------------------------------------------
35
+ # THE SCRIPT LINE — read this before reading any regex in this file.
36
+ # ---------------------------------------------------------------------------
37
+ # A Korean registration mark is NOT a Latin/digit string. Its canonical printed
38
+ # form is, for the current private car:
39
+ #
40
+ # 1 2 3 [가] 4 5 6 8 (Annex 2-1, sample serial as drawn)
41
+ #
42
+ # — three digits of class code, ONE HANGUL SYLLABLE naming the vehicle's use
43
+ # category, four digits of serial, set in nine contiguous cells with NO
44
+ # separator glyph anywhere on the plate. The hangul syllable is serial-
45
+ # significant: it is the difference between a private car (가), a taxi (바) and
46
+ # a rental car (허). It is emphatically NOT a separator and no consumer may
47
+ # delete it.
48
+ #
49
+ # PRD-PLATES §2.6 fixes the dataset's serial alphabet at A-Z and 0-9 and says in
50
+ # terms that a jurisdiction printing a glyph inside a serial "is a schema
51
+ # amendment, not a data entry". Korea is that jurisdiction. Until the amendment
52
+ # lands, this file draws the line exactly where §2.5/§2.6 and the Japan note in
53
+ # §2.2 point:
54
+ #
55
+ # * `format.pattern` / `format.regex` / `format.regex_strict` describe the
56
+ # MACHINE-READABLE DIGIT SKELETON of the mark and nothing else — the digits,
57
+ # in printed order, with the hangul element ELIDED. For 123가4568 the
58
+ # skeleton is 1234568 and the pattern is "9999999".
59
+ # * `format.hangul_field` (this file's local extension, the `fields[]`
60
+ # composition PRD-PLATES §2.2 anticipates for Japan) carries the elided
61
+ # element: its position, its script, its width in millimetres, its closed
62
+ # value set and a pointer into plates/_decode/kr-use-syllables.yml.
63
+ # * `matching: strict` is nonetheless correct on these series, and the reason
64
+ # is precise: `regex` is not WIDER than the issuing grammar of the serial as
65
+ # this dataset defines a serial (digits only) — it is exactly it, and
66
+ # `regex_strict` narrows it further to the authority's own class-code
67
+ # ranges. A match is a well-formedness claim about the digit skeleton. It is
68
+ # NOT, and this file never pretends it is, a claim that a full Korean mark
69
+ # including its hangul is valid. `hangul_field` is where that claim lives.
70
+ #
71
+ # The alternative — spelling the hangul position as a space or as `L` — was
72
+ # considered and rejected in both directions: a space would license a lenient
73
+ # consumer to DELETE a serial-significant character (§2.6's disjointness
74
+ # guarantee exists to make that impossible), and `L` would assert that a Latin
75
+ # letter appears on a Korean plate, which is false. The dossier for this
76
+ # jurisdiction proposes the `_meta/separators.yml` `never_separator` entry that
77
+ # would let a future schema version carry the syllable properly.
78
+ #
79
+ # ---------------------------------------------------------------------------
80
+ # THE FIVE PERIOD FACTS THIS FILE IS BUILT ON, each instrument-dated.
81
+ # ---------------------------------------------------------------------------
82
+ # 1. 1 SEPTEMBER 2019 — THE 8-CHARACTER REFORM, for passenger cars only.
83
+ # 국토교통부고시 제2018-529호 (27 Aug 2018), 부칙 제1조, verbatim:
84
+ # "제1조(시행일) 이 고시는 발령한 날부터 시행한다. 다만, 제2조 제2항, 제5조
85
+ # 제1항, 별표 2, 별표 2-1의 개정규정은 2019년 9월 1일부터 시행한다."
86
+ # [Art. 1 (Effective date) This Notice shall enter into force on the day of
87
+ # its issuance. Provided that the amended provisions of Article 2(2),
88
+ # Article 5(1), Annex 2 and Annex 2-1 shall enter into force on
89
+ # 1 September 2019.]
90
+ # Annex 2-1 is 비사업용(8자리 페인트방식) 보통 등록 번호판 — the eight-
91
+ # character non-commercial ordinary plate. Its transitional provision keeps
92
+ # every older plate valid: 부칙 제2조, "이 고시 시행당시 종전의 규정에 따라
93
+ # 부착된 번호판은 이 고시에 적합한 것으로 본다".
94
+ #
95
+ # 2. 1 JULY 2020 — THE FILM PLATE WITH THE TAEGEUK BAND.
96
+ # 국토교통부고시 제2019-89호 (22 Feb 2019), 부칙, verbatim:
97
+ # "이 고시는 2019년 9월 1일부터 시행한다. 다만, 별표2-2는 2020년 7월 1일부터
98
+ # 시행한다."
99
+ # Annex 2-2 is 비사업용(8자리 필름부착방식) 보통 등록 번호판 — the reflective-
100
+ # film plate that carries the 66 mm blue left band with the taegeuk and the
101
+ # country abbreviation KOR. It is a DESIGN, not a format: the mark is the
102
+ # same eight characters.
103
+ #
104
+ # 3. 1 NOVEMBER 2021 — THE 3-DIGIT CLASS CODE REACHES EVERYTHING ELSE.
105
+ # 국토교통부고시 제2021-1084호 (10 Sep 2021), 부칙 제1조, verbatim:
106
+ # "제1조(시행일) 이 고시는 2021년 9월 24일부터 시행한다. 다만 국토교통부 고시
107
+ # 제2021-202호 자동차등록번호판 등의 기준에 관한 고시 제5조제1항, 별표 2,
108
+ # 별표 2-2 개정규정은 2021년 11월 1일부터 시행한다."
109
+ # Reading the Article 5(1) tables across versions shows exactly what moved:
110
+ # in 제2019-423호 only 승용자동차 (passenger cars) had 100-699; buses, trucks
111
+ # and special vehicles were still 70-79 / 80-97 / 98,99. In 제2021-1084호 they
112
+ # are 700-799 / 800-979 / 980-997, with a new 긴급자동차 (emergency) row at
113
+ # 998-999. THE POPULAR ACCOUNT THAT "KOREA WENT TO THREE DIGITS IN 2019" IS
114
+ # HALF RIGHT: cars did, in 2019; everything else did, in 2021.
115
+ #
116
+ # 4. 1 JANUARY 2024 — THE LIGHT-GREEN CORPORATE-BUSINESS PLATE.
117
+ # 국토교통부고시 제2023-954호 (28 Dec 2023), 부칙 제1조: "이 고시는 2024년
118
+ # 1월 1일부터 시행한다"; 부칙 제2조 applies the new Art. 4(1)1(다) to vehicles
119
+ # registered or rented on or after that date.
120
+ #
121
+ # 5. 20 MARCH 2026 — THE NEW MOTORCYCLE PLATE, AND MOTORCYCLES LOSE GEOGRAPHY.
122
+ # 국토교통부고시 제2025-121호 (15 Mar 2025), 부칙 제1조: "... 제2조제2항,
123
+ # 제4조제2항, 제5조제2항 및 제3항, 제6항의 개정규정은 2026년 3월 20일부터
124
+ # 시행한다"; 제2025-676호 (27 Nov 2025), 부칙: "... 다만, 별표 15의2 제2호의
125
+ # 개정규정은 2026년 3월 20일부터 시행한다". Annex 15-2 is the 210x150 mm
126
+ # plate, and Article 6's proviso withholds the authority mark from it.
127
+ #
128
+ # And the sixth, which is one level UP the chain and is the one-back boundary:
129
+ # 6. 2004 — THE REGION-LESS ("전국", nationwide) PRIVATE PLATE.
130
+ # 「자동차관리법 시행규칙」 제6조제2항 confines the authority mark to
131
+ # transport-business vehicles and is tagged [전문개정 2004.12.6] — wholly
132
+ # amended by 건설교통부령 제415호 of 6 December 2004, whose 부칙 ① reads "이
133
+ # 규칙은 공포한 날부터 시행한다" (in force on promulgation). The YEAR is
134
+ # therefore primary. The DAY commonly repeated for the first region-less
135
+ # issue — 1 January 2004 — is NOT: it would have come from a 건설교통부고시
136
+ # that law.go.kr's administrative-rule archive does not reach (that archive
137
+ # begins at 국토교통부고시 제2009-812호, 24 August 2009). Recorded as folklore
138
+ # in the dossier; the year is asserted, the day is not.
139
+ #
140
+ # ---------------------------------------------------------------------------
141
+ # WHAT IS DELIBERATELY NOT IN THIS FILE (PRD-PLATES §2.5)
142
+ # ---------------------------------------------------------------------------
143
+ # * Military plates. Korean armed-forces registration is a Ministry of
144
+ # National Defense system outside 「자동차관리법」 and outside this notice;
145
+ # nothing about it was sourced, so nothing is claimed.
146
+ # * Construction machinery (「건설기계관리법」) — a different statute with its
147
+ # own plate regime.
148
+ # * The ~250-row 시/군/구 list printed on pre-2026 motorcycle plates: the
149
+ # notice does not enumerate it (see plates/_decode/kr-authority-marks.yml,
150
+ # `motorcycle_local_names`).
151
+ # * Pre-1996 formats, and the whole colonial/Republic-era chain. L4.
152
+ # * The notice's Articles 3, 3-2, 4-2 and 6-2 (durability testing, film
153
+ # warranty, inspection bodies, mounting geometry) — real, sourced, and
154
+ # below the era-inference usefulness line §2.5 draws.
155
+ jurisdiction: kr
156
+ authority:
157
+ name: 국토교통부 (Ministry of Land, Infrastructure and Transport, MOLIT) — 자동차운영보험과
158
+ url: "https://www.law.go.kr/%ED%96%89%EC%A0%95%EA%B7%9C%EC%B9%99/%EC%9E%90%EB%8F%99%EC%B0%A8%EB%93%B1%EB%A1%9D%EB%B2%88%ED%98%B8%ED%8C%90%EB%93%B1%EC%9D%98%EA%B8%B0%EC%A4%80%EC%97%90%EA%B4%80%ED%95%9C%EA%B3%A0%EC%8B%9C"
159
+ binding: vehicle
160
+ binding_note: >-
161
+ 「자동차등록령」 제21조제2항: a de-registered number may not be reused until
162
+ six months after the plate is recovered and the vehicle de-registered, with
163
+ an express exception letting a former transport-business operator take the
164
+ old number onto a new vehicle. So the number attaches to the VEHICLE, with a
165
+ narrow owner-follows-number carve-out for commercial fleets — not the Swiss
166
+ owner-binding, and worth stating because the carve-out is unusual.
167
+
168
+ instrument:
169
+ citation: "「자동차 등록번호판 등의 기준에 관한 고시」 (Notice on the standards for motor-vehicle registration plates), 국토교통부고시 제2025-121호"
170
+ issued: "2025-03-15"
171
+ in_force: "2025-03-15"
172
+ delayed_provisions:
173
+ - "별표 9, 별표 10: nine months after issuance"
174
+ - "제2조제2항, 제4조제2항, 제5조제2항·제3항, 제6항: 2026-03-20"
175
+ status_note: >-
176
+ 제2025-121호 is the version IN FORCE on the access date. A later amendment,
177
+ 국토교통부고시 제2025-676호 (issued 2025-11-27), enters force one year after
178
+ issuance (2026-11-27) except its Annex 15-2 item 2 amendment, which took
179
+ effect 2026-03-20. Both texts were fetched; Articles 5 and 6 are identical
180
+ between them, so every claim in this file holds under either.
181
+ enabling:
182
+ - "「자동차관리법」 (Motor Vehicle Management Act) 제10조 (자동차등록번호판) — duty to affix; no composition rule"
183
+ - "「자동차등록령」 (Enforcement Decree) 제21조제1항 — assignment by vehicle type and use 'in accordance with the standards determined and published by notice by the Minister'"
184
+ - "「자동차관리법 시행규칙」 (Enforcement Rule) 제3조~제6조 — mounting, issue, and 제6조제3항's re-delegation of size/material/colour to the notice after consultation with the National Police Agency"
185
+ amendment_history_reachable_from: "국토교통부고시 제2009-812호 (2009-08-24). Earlier 건설교통부고시 versions are NOT published on law.go.kr — the single largest sourcing gap for this jurisdiction."
186
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # full text of the in-force notice incl. every 부칙 quoted in the header"
187
+ licence: "국가법령정보센터 (law.go.kr) is the Korea Ministry of Government Legislation's official publication channel for statutes and administrative rules. Korean statutes and administrative rules are edicts of government. No text of the notice is redistributed here beyond the short verbatim quotations this dataset's sourcing law requires."
188
+
189
+ # ---------------------------------------------------------------------------
190
+ # Jurisdiction-wide facts, cited once and referenced per series.
191
+ # ---------------------------------------------------------------------------
192
+ common:
193
+ vehicle_types:
194
+ note: >-
195
+ 「자동차관리법」 제3조제1항 — the five statutory vehicle types the class
196
+ code encodes. 1. 승용자동차 (passenger, built to carry 10 or fewer);
197
+ 2. 승합자동차 (bus/van, 11 or more, plus deemed cases);
198
+ 3. 화물자동차 (goods); 4. 특수자동차 (special — towing, recovery or
199
+ special-purpose, being none of the other three); 5. 이륜자동차
200
+ (motorcycle). This dataset's `categories` map onto them as
201
+ 승용->car, 승합->bus+van, 화물->truck+van, 특수->machine+truck,
202
+ 이륜->motorcycle.
203
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95&type=XML # 자동차관리법 제3조제1항"
204
+ plate_sizes:
205
+ note: >-
206
+ Article 1-3 splits registration plates into 대형등록번호판 (large — large
207
+ buses, goods vehicles of 4 t or more payload, special vehicles of 4 t or
208
+ more gross) and 보통등록번호판 (ordinary — everything else), and Article
209
+ 2(2) lists the annex per plate. Every size below is from an annex TITLE
210
+ and is confirmed by the drawing's own dimension line and its footer
211
+ "가로 A mm x 세로 B mm(허용 범위: ± 0.5mm)" (width A by height B,
212
+ tolerance ±0.5 mm).
213
+ annexes:
214
+ - "Annex 1 — 비사업용 보통 등록 번호판 335 x 155 mm"
215
+ - "Annex 2 — 비사업용(7자리 페인트방식) 보통 등록번호판 520 x 110 mm"
216
+ - "Annex 2-1 — 비사업용(8자리 페인트방식) 보통 등록 번호판 520 x 110 mm"
217
+ - "Annex 2-2 — 비사업용(8자리 필름부착방식) 보통 등록 번호판 520 x 110 mm"
218
+ - "Annex 3 — 자동차 운수 사업용 보통 등록 번호판 335 x 170 mm"
219
+ - "Annex 4 — 자동차 운수 사업용 보통 등록 번호판 520 x 110 mm"
220
+ - "Annex 5 — 비사업용 대형 등록 번호판 440 x 200 mm"
221
+ - "Annex 6 — 자동차 운수 사업용 대형 등록 번호판 440 x 220 mm"
222
+ - "Annex 7 — 주한 외교공관 공관원 자동차 번호판 335 x 155 mm"
223
+ - "Annex 8 — 주한 외교공관 공관원 자동차 번호판 520 x 110 mm"
224
+ - "Annex 9 — 허가 기간이 11일 이상인 임시운행 허가 번호판 335 x 155 mm"
225
+ - "Annex 10 — 허가 기간이 11일 이상인 임시운행 허가 번호판 520 x 110 mm"
226
+ - "Annex 11 — 허가 기간이 10일 이하인 임시운행 허가 번호판 335 x 170 mm"
227
+ - "Annex 12 — 허가 기간이 10일 이하인 임시운행 허가 번호판 520 x 110 mm"
228
+ - "Annex 13/14/15 — 이륜자동차 번호판, 210 x 115 mm, one/two/three-syllable local name"
229
+ - "Annex 15-2 — 이륜자동차번호판 210 x 150 mm"
230
+ - "Annex 16 — 이륜자동차 임시운행 허가 번호판 210 x 115 mm"
231
+ - "Annex 17 — 삭제 (deleted)"
232
+ - "Annex 18 — 전기자동차 번호판 520 x 110 mm"
233
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-3, Art. 2(2)-(3), annex titles"
234
+ material:
235
+ note: >-
236
+ Article 2(1), verbatim: "번호판의 재질은 알루미늄으로 하되 그 규격은 두께
237
+ 1㎜의 KS D6701 A1050P \"0\" 으로 한다. 다만, 임시운행의 허가기간이 10일
238
+ 이내인 임시운행허가번호판 ... 의 경우에는 두께 2.5㎜이상의 목재판으로
239
+ 한다." — 1 mm aluminium to KS D6701 A1050P temper "0", EXCEPT the
240
+ short-term (10 days or less) temporary-operation plate, which is a
241
+ WOODEN board of 2.5 mm or more. Article 2(4): every character is embossed
242
+ 1.3-1.6 mm proud (the short-term temporary plate excepted). Article 2(5):
243
+ registration and motorcycle plates may be paint-type or film-type; the
244
+ electric-vehicle plate MUST be film-type.
245
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(1), 2(4), 2(5)"
246
+ colours:
247
+ note: >-
248
+ Article 4 names the colours; Article 4(4) numbers them. This is a rare
249
+ case where the authority publishes BOTH a colour-order notation and a
250
+ CIELAB triplet, so this file records which is which per colour and never
251
+ blends them.
252
+ paint_method:
253
+ basis: "Art. 4(4)가 — 국가기술표준원의 한국색표준분류기준 및 CIE L*a*b* 표색계에 의한다. 단, CIE L*a*b* 표색계의 허용오차는 ΔE*ab≤3으로 한다. (Korean Agency for Technology and Standards colour classification and CIE L*a*b*, tolerance ΔE*ab ≤ 3.)"
254
+ values:
255
+ - { name_ko: "분홍빛 흰색", name_en: "pinkish white", cielab: { L: 89.10, a: 0.58, b: 3.95 } }
256
+ - { name_ko: "보랏빛 검은색", name_en: "purplish black", cielab: { L: 25.70, a: 0.10, b: -5.48 } }
257
+ - { name_ko: "연녹색", name_en: "light green", cielab: { L: 73.37, a: -21.17, b: 53.88 } }
258
+ - { name_ko: "녹색", name_en: "green", munsell: "2.5G 4/10" }
259
+ - { name_ko: "적색", name_en: "red", munsell: "5R 4/14" }
260
+ - { name_ko: "황색", name_en: "yellow", munsell: "2.5Y 8/16" }
261
+ - { name_ko: "청색", name_en: "blue", munsell: "2.5PB 3/13" }
262
+ - { name_ko: "남색", name_en: "navy", munsell: "5PB 3/10" }
263
+ - { name_ko: "감청색", name_en: "dark navy", munsell: "7.5PB 2/8" }
264
+ - { name_ko: "흰색", name_en: "white", munsell: "N9.5" }
265
+ - { name_ko: "검은색", name_en: "black", munsell: "N1.5" }
266
+ film_method:
267
+ basis: "Art. 4(4)나 — 일반용 film ground colour to KS T 3507, given as four chromaticity corner points; 법인업무용 film ground given in CIE L*a*b* with a CIEDE2000 tolerance ΔE00 ≤ 5."
268
+ white_chromaticity: "KS T 3507 corners (x,y): (0.303,0.300) (0.368,0.366) (0.340,0.393) (0.274,0.329)"
269
+ corporate_cielab: { L: 71.15, a: -30.67, b: 60.02 }
270
+ hex_basis_policy: >-
271
+ Two bases appear in this file and they are never mixed. `hex_basis:
272
+ cielab-derived` means the hex was computed from the notice's own CIELAB
273
+ triplet (D65, sRGB, standard Lab->XYZ->linear-sRGB->gamma), so it is a
274
+ faithful rendering of a NUMBERED claim. `hex_basis: munsell-approximate`
275
+ means the notice gives only a Munsell colour-order notation, which is a
276
+ perceptual specification and not a coordinate: the hex is an
277
+ APPROXIMATION supplied for rendering and the `munsell:` value beside it is
278
+ the actual sourced claim. Never audit a munsell-approximate hex as a
279
+ colour fact; audit the notation.
280
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 4(1)-(5) and the Art. 4(4) tables, images flSeq=150961777 (paint), 150966219 (film white), 150966221 (film light green)"
281
+ class_codes:
282
+ note: >-
283
+ Article 5(1) and its table — the CLASS CODE, the leading digit group. The
284
+ table is reproduced here because it is the single most useful decode fact
285
+ about a Korean plate after the syllable, and because the 3-digit ranges
286
+ arrived on two different dates (see header facts 1 and 3).
287
+ ranges_current:
288
+ - { type_ko: "승용자동차", type_en: "passenger", use: "비사업용 / 대여사업용", code: "100-699", digits: 3, from: 2019 }
289
+ - { type_ko: "승용자동차", type_en: "passenger", use: "일반사업용", code: "01-69", digits: 2 }
290
+ - { type_ko: "승합자동차", type_en: "bus", use: "비사업용 / 대여사업용", code: "700-799", digits: 3, from: 2021 }
291
+ - { type_ko: "승합자동차", type_en: "bus", use: "일반사업용", code: "70-79", digits: 2 }
292
+ - { type_ko: "화물자동차", type_en: "goods", use: "비사업용", code: "800-979", digits: 3, from: 2021 }
293
+ - { type_ko: "화물자동차", type_en: "goods", use: "일반사업용", code: "80-97", digits: 2 }
294
+ - { type_ko: "특수자동차", type_en: "special", use: "비사업용 / 대여사업용", code: "980-997", digits: 3, from: 2021 }
295
+ - { type_ko: "특수자동차", type_en: "special", use: "일반사업용", code: "98, 99", digits: 2 }
296
+ - { type_ko: "긴급자동차", type_en: "emergency (police car, fire appliance)", use: "-", code: "998-999", digits: 3, from: 2021 }
297
+ proviso: >-
298
+ Article 5(1)'s proviso, verbatim: "다만, 제2조 제2항 별표 1, 별표 5 및
299
+ 별표 18의 등록번호판을 사용하는 자동차에 대한 차종별 분류기호는
300
+ 승용자동차는 01-69, 승합자동차는 70-79, 화물자동차는 80-97, 특수자동차는
301
+ 98-99로 한다." — vehicles using the ANNEX 1 (335x155 ordinary), ANNEX 5
302
+ (440x200 large) or ANNEX 18 (electric) plate keep the TWO-digit code,
303
+ whatever their use. Those three plate specs are therefore seven-character
304
+ marks to this day, and Annex 18 is the surprise on that list: see
305
+ kr-electric's notes.
306
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 5(1) + proviso; table image flSeq=150966223"
307
+ use_syllable:
308
+ note: >-
309
+ The hangul use-category element. Closed primary list, dated rows,
310
+ mechanism and the rental/commercial disambiguation rule:
311
+ plates/_decode/kr-use-syllables.yml
312
+ source: "plates/_decode/kr-use-syllables.yml # Art. 5(1) table, 5(2), 5(3)"
313
+ authority_mark:
314
+ note: >-
315
+ The hangul place-name, present ONLY on transport-business plates
316
+ (and pre-2026 motorcycles, and temporary plates in officer-title form):
317
+ plates/_decode/kr-authority-marks.yml
318
+ source: "plates/_decode/kr-authority-marks.yml # Art. 6 and its proviso"
319
+ separator_finding:
320
+ note: >-
321
+ NO KOREAN REGISTRATION PLATE PRINTS A SEPARATOR GLYPH, with exactly one
322
+ exception. The ordinary, large, commercial and motorcycle drawings set
323
+ every character in an abutting cell (Annex 2-1: 30 | 55 55 55 | 75 | 55 55
324
+ 55 55 | 30 mm across 520 mm) with no gap and no mark between groups. The
325
+ exception is the DIPLOMATIC plate, where Annexes 7 and 8 draw a real
326
+ hyphen between the two three-digit groups — 외교 321-678 — with its own
327
+ cell in the dimension chain at mid-plate. That hyphen is a printed glyph,
328
+ and it is the only emitted separator in this file.
329
+ source: "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Annex 2-1 (flSeq 158474299/158474325), Annex 7 (158474385/158474389), Annex 8 (158474391/158474395) drawings"
330
+
331
+ series:
332
+
333
+ # =========================================================================
334
+ # NON-COMMERCIAL (비사업용) — the ordinary 520 x 110 mm plate, 8 characters.
335
+ # The current standard. Two design regimes run in parallel and BOTH are
336
+ # current: Annex 2-1 (painted) and Annex 2-2 (reflective film with the
337
+ # taegeuk/KOR band). Art. 2(5) permits either for a registration plate.
338
+ # =========================================================================
339
+ - id: kr-noncommercial-8-film
340
+ class: standard
341
+ categories: [car]
342
+ period: { start: 2020 } # 2020-07-01, 고시 제2019-89호 부칙
343
+ period_evidence: enabling-instrument
344
+ matching: strict
345
+ format:
346
+ pattern: "9999999"
347
+ regex: '\A\d{7}\z'
348
+ regex_strict: '\A[1-6]\d{6}\z'
349
+ pattern_note: >-
350
+ DIGIT SKELETON ONLY — see the SCRIPT LINE in this file's header. The
351
+ printed mark is three class digits, one HANGUL syllable, four serial
352
+ digits, with no separator: 123가4568. The pattern elides the syllable;
353
+ `hangul_field` below carries it. `regex_strict` encodes Art. 5(1)'s
354
+ class range 100-699 for non-commercial and rental passenger cars.
355
+ hangul_field:
356
+ position: 4 # 1-indexed over the PRINTED mark, not the skeleton
357
+ after_skeleton_digits: 3
358
+ script: Hangul
359
+ length: 1
360
+ cell_width_mm: 85
361
+ values: non_commercial + rental
362
+ decode: "plates/_decode/kr-use-syllables.yml"
363
+ note: >-
364
+ A private car draws its syllable from the 32-syllable non-commercial
365
+ set; a RENTAL car (대여사업용) draws 허/하/호 and is otherwise
366
+ identical — same white plate, same 100-699 class range, and Art. 6's
367
+ proviso withholds the authority mark from it too. The syllable is the
368
+ only thing distinguishing them.
369
+ progression: "「자동차등록령」 제21조제1항: numbers are assigned 순서대로 (in sequence) within type and use; the proviso lets the registrant pick one of ten randomly drawn numbers within ranges the Minister sets. Intra-range allocation order is not published."
370
+ design:
371
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
372
+ background: { color: "#E4DFD8", finish: retroreflective, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색 / 흰색(필름)", note: "Art. 4(1)1(가): the FILM plate's ground is plain 흰색 white to KS T 3507; the CIELAB-derived hex here is the paint standard's 분홍빛 흰색 (L*89.10 a*0.58 b*3.95), retained as the closest numbered value the notice gives. The film ground is specified by chromaticity corners, not a single point — see common.colours.film_method." }
373
+ foreground: "#393D45"
374
+ foreground_basis: cielab-derived
375
+ foreground_spec: "보랏빛 검은색, CIE L* 25.70 a* 0.10 b* -5.48"
376
+ characters: { height_mm: 85, digit_cell_mm: 50, hangul_cell_mm: 85 }
377
+ band:
378
+ side: left
379
+ width_mm: 56.3
380
+ band_cell_mm: 65.0
381
+ content: "taegeuk + KOR"
382
+ color: "#0A19FC"
383
+ hex_basis: cmyk-naive
384
+ cmyk_spec: "Annex 2-2 item 5: 디자인 배경 basic ground 밝은색 C40 M4 Y0 K0 / 중간색 C96 M90 Y0 K1 / 어두운색 C100 M97 Y22 K29; 국가축약문자 KOR same three, KOR outline C9 M7 Y7 K0; 숫자 및 한글 C73 M67 Y65 K80"
385
+ note: "The band is a blue gradient, not a flat colour; the hex is a naive CMYK conversion of the mid tone and is for rendering only. This is Korea's equivalent of the EU band and it is NOT an EU band: it carries the national taegeuk and the ISO country abbreviation KOR."
386
+ emblem: { present: true, rendered: placeholder, note: "the taegeuk in the band is a national symbol; PRD-PLATES §3 placeholder rule applies until its licence posture is affirmatively cleared" }
387
+ hologram: { present: true, note: "Annex 2-2 item 4 (홀로그램 패턴) — a 25 mm grid of holographic security marks across the plate face" }
388
+ rear_differs: false
389
+ region_encoding: none
390
+ region_encoding_note: "Art. 6 proviso — non-commercial plates carry NO authority mark. See plates/_decode/kr-authority-marks.yml for why that is the single most important Korean decode fact."
391
+ sources:
392
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000176243&type=XML # 고시 제2019-89호 부칙: '이 고시는 2019년 9월 1일부터 시행한다. 다만, 별표2-2는 2020년 7월 1일부터 시행한다' — the period.start"
393
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(2), Art. 4(1)1(가), Art. 4(4)나, Art. 5(1) 100-699, Art. 6 proviso"
394
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474359 # Annex 2-2 drawing: 520x110 mm, cells 65.0|50 50 50|85|50 50 50 50|20 = 520.0 exactly, the band GRAPHIC itself 56.3 mm wide with 1.28 mm to the first character cell, character height 85 mm, band with taegeuk and KOR, sample mark 123가4568"
395
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=150966219 # Art. 4(4)나 KS T 3507 white chromaticity corners"
396
+ notes: >-
397
+ THE CURRENT KOREAN PRIVATE-CAR PLATE. Reflective-film construction with
398
+ the blue taegeuk/KOR band, in force from 1 July 2020 by 고시 제2019-89호.
399
+ Format identical to the painted Annex 2-1 plate that preceded it by ten
400
+ months; the band, the hologram grid and the film construction are the
401
+ difference, which is why this is its own series and not a variant. Old
402
+ plates stay valid: 고시 제2018-529호 부칙 제2조 deems every plate fitted
403
+ under the former provisions compliant.
404
+
405
+ - id: kr-noncommercial-8-paint
406
+ class: standard
407
+ categories: [car]
408
+ period: { start: 2019 } # 2019-09-01, 고시 제2018-529호 부칙 제1조
409
+ period_evidence: enabling-instrument
410
+ matching: strict
411
+ format:
412
+ pattern: "9999999"
413
+ regex: '\A\d{7}\z'
414
+ regex_strict: '\A[1-6]\d{6}\z'
415
+ pattern_note: "Digit skeleton only; printed mark is 123가4568. See the SCRIPT LINE header."
416
+ hangul_field:
417
+ position: 4
418
+ after_skeleton_digits: 3
419
+ script: Hangul
420
+ length: 1
421
+ cell_width_mm: 75
422
+ values: non_commercial + rental
423
+ decode: "plates/_decode/kr-use-syllables.yml"
424
+ design:
425
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
426
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색", spec: "CIE L* 89.10 a* 0.58 b* 3.95, ΔE*ab ≤ 3" }
427
+ foreground: "#393D45"
428
+ foreground_basis: cielab-derived
429
+ foreground_spec: "보랏빛 검은색, CIE L* 25.70 a* 0.10 b* -5.48"
430
+ characters: { height_mm: 83, digit_cell_mm: 55, hangul_cell_mm: 75, margin_mm: 30 }
431
+ band: { side: none }
432
+ emblem: { present: false }
433
+ rear_differs: false
434
+ region_encoding: none
435
+ sources:
436
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000149714&type=XML # 고시 제2018-529호 부칙 제1조: '제2조 제2항, 제5조 제1항, 별표 2, 별표 2-1의 개정규정은 2019년 9월 1일부터 시행한다' — the 8-character reform, and this series' period.start"
437
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(2), Art. 4(1)1(가), Art. 4(4)가, Art. 5(1)"
438
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474325 # Annex 2-1 drawing: 520x110 mm, cells 30|55 55 55|75|55 55 55 55|30, character height 83 mm, sample mark 123가4568"
439
+ notes: >-
440
+ THE 2019 EIGHT-CHARACTER REFORM ITSELF, in its painted form. Annex 2-1
441
+ entered force 1 September 2019 and is the instrument that took the Korean
442
+ passenger-car class code from two digits to three (01-69 -> 100-699),
443
+ buying roughly a sixfold expansion of the number space. It runs in
444
+ parallel with the film plate (kr-noncommercial-8-film) from July 2020;
445
+ Art. 2(5) leaves the choice of construction open for registration plates,
446
+ so both are live and the parallel issue is real, not stock clearance.
447
+
448
+ - id: kr-noncommercial-8-heavy-film
449
+ class: standard
450
+ categories: [bus, van, truck, machine]
451
+ period: { start: 2021 } # 2021-11-01, 고시 제2021-1084호 부칙 제1조
452
+ period_evidence: enabling-instrument
453
+ matching: strict
454
+ format:
455
+ pattern: "9999999"
456
+ regex: '\A\d{7}\z'
457
+ regex_strict: '\A(?:7\d\d|8\d\d|9[0-7]\d|98\d|99[0-7])\d{4}\z'
458
+ pattern_note: "Digit skeleton only; printed mark is 700가1234 for a private bus, 800가1234 for a private goods vehicle. See the SCRIPT LINE header."
459
+ hangul_field:
460
+ position: 4
461
+ after_skeleton_digits: 3
462
+ script: Hangul
463
+ length: 1
464
+ cell_width_mm: 85
465
+ values: non_commercial + rental
466
+ decode: "plates/_decode/kr-use-syllables.yml"
467
+ class_ranges: "승합 700-799 · 화물 800-979 · 특수 980-997 (Art. 5(1)); 긴급자동차 998-999 is a separate emergency-service range and is NOT claimed by this series"
468
+ design:
469
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
470
+ background: { color: "#E4DFD8", finish: retroreflective, hex_basis: cielab-derived, spec_name_ko: "흰색 (film, KS T 3507)" }
471
+ foreground: "#393D45"
472
+ foreground_basis: cielab-derived
473
+ characters: { height_mm: 85, digit_cell_mm: 50, hangul_cell_mm: 85 }
474
+ band: { side: left, width_mm: 56.3, band_cell_mm: 65.0, content: "taegeuk + KOR", color: "#0A19FC", hex_basis: cmyk-naive }
475
+ emblem: { present: true, rendered: placeholder }
476
+ rear_differs: false
477
+ region_encoding: none
478
+ sources:
479
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000204502&type=XML # 고시 제2021-1084호 부칙 제1조 ('제5조제1항, 별표 2, 별표 2-2 개정규정은 2021년 11월 1일부터 시행한다') and its Art. 5(1) table image flSeq=109183845 showing 700-799 / 800-979 / 980-997 / 998-999"
480
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 5(1) as in force, same ranges"
481
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474359 # Annex 2-2 drawing"
482
+ notes: >-
483
+ THE HALF OF THE REFORM NOBODY REPORTS. Buses, goods vehicles and special
484
+ vehicles did NOT get three-digit class codes in 2019 — comparing the
485
+ Article 5(1) tables of 고시 제2019-423호 and 제2021-1084호 shows them
486
+ still on 70-79 / 80-97 / 98,99 through 2021 and moving to 700-799 /
487
+ 800-979 / 980-997 only on 1 November 2021, when a 998-999 emergency-
488
+ vehicle range (police cars, fire appliances) was created at the same time.
489
+ A three-digit code beginning with 7, 8 or 9 therefore dates a plate to
490
+ November 2021 at the earliest, which is a sharper age signal than the
491
+ 1-6 passenger range gives.
492
+
493
+ - id: kr-noncommercial-8-heavy-paint
494
+ class: standard
495
+ categories: [bus, van, truck, machine]
496
+ period: { start: 2021 } # 2021-11-01
497
+ period_evidence: enabling-instrument
498
+ matching: strict
499
+ format:
500
+ pattern: "9999999"
501
+ regex: '\A\d{7}\z'
502
+ regex_strict: '\A(?:7\d\d|8\d\d|9[0-7]\d|98\d|99[0-7])\d{4}\z'
503
+ pattern_note: "Digit skeleton only. See the SCRIPT LINE header."
504
+ hangul_field:
505
+ position: 4
506
+ after_skeleton_digits: 3
507
+ script: Hangul
508
+ length: 1
509
+ cell_width_mm: 75
510
+ values: non_commercial + rental
511
+ decode: "plates/_decode/kr-use-syllables.yml"
512
+ design:
513
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
514
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색" }
515
+ foreground: "#393D45"
516
+ foreground_basis: cielab-derived
517
+ characters: { height_mm: 83, digit_cell_mm: 55, hangul_cell_mm: 75 }
518
+ band: { side: none }
519
+ rear_differs: false
520
+ region_encoding: none
521
+ sources:
522
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000204502&type=XML # 부칙 제1조 (2021-11-01) and Art. 5(1) table image flSeq=109183845"
523
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474325 # Annex 2-1 drawing"
524
+ notes: >-
525
+ The painted construction of the same 2021 extension. Recorded separately
526
+ from the film plate because Art. 2(5) leaves both constructions open and
527
+ the two carry visibly different faces (no band, no hologram, 83 mm
528
+ characters in 55 mm cells against 85 mm in 50 mm cells).
529
+
530
+ # =========================================================================
531
+ # ONE SERIES BACK — the seven-character 520 x 110 mm plate (Annex 2).
532
+ # Still printed in the notice, because Annex 18 (electric) builds on it.
533
+ # =========================================================================
534
+ - id: kr-noncommercial-7-long
535
+ class: standard
536
+ categories: [car]
537
+ period: { start: 2009, end: 2019 }
538
+ period_evidence: instrument-in-force-upper-bound
539
+ matching: strict
540
+ format:
541
+ pattern: "999999"
542
+ regex: '\A\d{6}\z'
543
+ regex_strict: '\A(?:0[1-9]|[1-6]\d)\d{4}\z'
544
+ pattern_note: "Digit skeleton only; printed mark is 52가3108 (Annex 2's own sample). Two class digits, hangul syllable, four serial digits."
545
+ hangul_field:
546
+ position: 3
547
+ after_skeleton_digits: 2
548
+ script: Hangul
549
+ length: 1
550
+ cell_width_mm: 96
551
+ values: non_commercial + rental
552
+ decode: "plates/_decode/kr-use-syllables.yml"
553
+ design:
554
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
555
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색" }
556
+ foreground: "#393D45"
557
+ foreground_basis: cielab-derived
558
+ characters: { height_mm: 83, digit_cell_mm: 56, hangul_cell_mm: 96 }
559
+ band: { side: none }
560
+ rear_differs: false
561
+ region_encoding: none
562
+ sources:
563
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474297 # Annex 2 drawing: 비사업용(7자리 페인트방식) 보통 등록번호판 520x110 mm, cells 44|56 56|96|56 56 56 56|44, character height 83 mm, sample mark 52가3108"
564
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 2(2) already lists 별표 제1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15 — Annex 2 in force by 2009-08-24, the upper bound this period.start records"
565
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000149714&type=XML # 고시 제2018-529호 부칙 제1조 — Annex 2-1 supersedes this format for new passenger registrations from 2019-09-01, the period.end"
566
+ notes: >-
567
+ THE ONE-BACK PASSENGER SERIES, and a period claim this file states
568
+ carefully. period.start 2009 is an UPPER BOUND, not a start: the 520x110
569
+ mm long plate is universally dated to 1 November 2006 in Korean secondary
570
+ accounts, and no primary for that day was secured, because law.go.kr's
571
+ administrative-rule archive for this notice begins at 국토교통부고시
572
+ 제2009-812호 (24 August 2009) and the 건설교통부고시 that introduced Annex 2
573
+ is not published there. What IS primary is that Annex 2 was already in
574
+ force on 2009-08-24. The 2006 date is logged as folklore in the
575
+ jurisdiction dossier and is NOT asserted here. period.end 2019 is exact:
576
+ from 1 September 2019 a non-commercial passenger car on an ordinary
577
+ 520x110 plate takes the three-digit code, which Annex 2's seven cells
578
+ cannot hold. Marks already issued remain valid indefinitely.
579
+
580
+ - id: kr-noncommercial-7-long-heavy
581
+ class: standard
582
+ categories: [bus, van, truck, machine]
583
+ period: { start: 2009, end: 2021 }
584
+ period_evidence: instrument-in-force-upper-bound
585
+ matching: strict
586
+ format:
587
+ pattern: "999999"
588
+ regex: '\A\d{6}\z'
589
+ regex_strict: '\A(?:7\d|8\d|9[0-9])\d{4}\z'
590
+ pattern_note: "Digit skeleton only; printed mark 70가1234 (bus), 80가1234 (goods), 98가1234 (special)."
591
+ hangul_field:
592
+ position: 3
593
+ after_skeleton_digits: 2
594
+ script: Hangul
595
+ length: 1
596
+ cell_width_mm: 96
597
+ values: non_commercial + rental
598
+ decode: "plates/_decode/kr-use-syllables.yml"
599
+ design:
600
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
601
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색" }
602
+ foreground: "#393D45"
603
+ foreground_basis: cielab-derived
604
+ characters: { height_mm: 83 }
605
+ band: { side: none }
606
+ region_encoding: none
607
+ sources:
608
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474297 # Annex 2 drawing"
609
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000180990&type=XML # 고시 제2019-423호 Art. 5(1) table image flSeq=44282120 — buses/goods/special still on 70-79 / 80-97 / 98,99 AFTER the 2019 passenger reform"
610
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000204502&type=XML # 고시 제2021-1084호 부칙 제1조 — three-digit codes for these types from 2021-11-01, the period.end"
611
+ notes: >-
612
+ The same Annex 2 plate on non-passenger vehicles, which kept the
613
+ two-digit code for a further two years after cars lost it. Its existence
614
+ is why "Korean plates went to eight characters in 2019" is a half-truth:
615
+ between September 2019 and November 2021 Korea issued seven-character and
616
+ eight-character non-commercial plates side by side, distinguished purely
617
+ by vehicle type. Same upper-bound caveat on period.start as
618
+ kr-noncommercial-7-long.
619
+
620
+ # =========================================================================
621
+ # THE 2004 REGION-LESS PLATE, STILL CURRENT: Annex 1, 335 x 155 mm.
622
+ # =========================================================================
623
+ - id: kr-noncommercial-short
624
+ class: standard
625
+ categories: [car, bus, van, truck, machine]
626
+ period: { start: 2004 }
627
+ period_evidence: enabling-instrument
628
+ matching: strict
629
+ format:
630
+ pattern: "999999"
631
+ regex: '\A\d{6}\z'
632
+ regex_strict: '\A(?:0[1-9]|[1-9]\d)\d{4}\z'
633
+ pattern_note: "Digit skeleton only; printed mark is 39나2764 (Annex 1's own sample). Two class digits, hangul syllable, four serial digits, one line."
634
+ hangul_field:
635
+ position: 3
636
+ after_skeleton_digits: 2
637
+ script: Hangul
638
+ length: 1
639
+ cell_width_mm: 49
640
+ values: non_commercial + rental
641
+ decode: "plates/_decode/kr-use-syllables.yml"
642
+ class_note: "Art. 5(1) proviso keeps EVERY Annex 1 vehicle on two digits: 승용 01-69, 승합 70-79, 화물 80-97, 특수 98-99. regex_strict is their union minus 00."
643
+ design:
644
+ plate: { w: 335, h: 155, unit: mm, tolerance_mm: 0.5 }
645
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색" }
646
+ foreground: "#393D45"
647
+ foreground_basis: cielab-derived
648
+ characters: { height_mm: 83, digit_cell_mm: 45, hangul_cell_mm: 49 }
649
+ band: { side: none }
650
+ rear_differs: false
651
+ region_encoding: none
652
+ sources:
653
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95%20%EC%8B%9C%ED%96%89%EA%B7%9C%EC%B9%99&type=XML # 시행규칙 제6조제2항, tagged [전문개정 2004.12.6]: the authority mark is required only on transport-business plates. 건설교통부령 제415호 부칙 ①: in force on promulgation, 2004-12-06"
654
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 6 already carries the proviso '비사업용 및 대여사업용 ... 기호표시를 하지 아니하며' — the region-less private plate was settled law by 2009"
655
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474239 # Annex 1 drawing: 비사업용 보통 등록 번호판 335x155 mm, cells 45 45|49|45 45 45 45, character height 83 mm, sample mark 39나2764, NO authority mark"
656
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 5(1) proviso keeping Annex 1 on two digits; Art. 6 proviso"
657
+ notes: >-
658
+ THE NATIONWIDE ("전국") PLATE — the 2004 reform, and still issued today.
659
+ This is the plate that dropped Korean geography: before it, a private
660
+ Korean plate opened with a province mark (서울, 경기 ...) and a car that
661
+ moved house changed its number. 「자동차관리법 시행규칙」 제6조제2항 confines
662
+ the mark to transport-business vehicles and carries the tag [전문개정
663
+ 2004.12.6], amended by 건설교통부령 제415호 in force on promulgation, so
664
+ the YEAR is primary. The commonly repeated first-issue day of 1 January
665
+ 2004 is not: it would sit in a 건설교통부고시 outside law.go.kr's reach.
666
+ This series remains OPEN because Art. 5(1)'s proviso exempts Annex 1 from
667
+ the three-digit code — a car that physically cannot take a 520 mm plate
668
+ still receives a seven-character 335x155 mm mark in 2026.
669
+
670
+ - id: kr-noncommercial-large
671
+ class: standard
672
+ categories: [bus, truck, machine]
673
+ period: { start: 2004 }
674
+ period_evidence: enabling-instrument
675
+ matching: strict
676
+ format:
677
+ pattern: "999999"
678
+ regex: '\A\d{6}\z'
679
+ regex_strict: '\A[7-9]\d{5}\z'
680
+ pattern_note: "Digit skeleton only; printed mark is 52가3018 (Annex 5's own sample, drawn with a passenger code). On the vehicles Annex 5 actually serves the class code is 70-79, 80-97 or 98-99, which is what regex_strict encodes."
681
+ hangul_field:
682
+ position: 3
683
+ after_skeleton_digits: 2
684
+ script: Hangul
685
+ length: 1
686
+ cell_width_mm: 64
687
+ values: non_commercial
688
+ decode: "plates/_decode/kr-use-syllables.yml"
689
+ design:
690
+ plate: { w: 440, h: 200, unit: mm, tolerance_mm: 0.5 }
691
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색" }
692
+ foreground: "#393D45"
693
+ foreground_basis: cielab-derived
694
+ characters: { height_mm: 105, digit_cell_mm: 59, hangul_cell_mm: 64 }
695
+ band: { side: none }
696
+ region_encoding: none
697
+ sources:
698
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474377 # Annex 5 drawing: 비사업용 대형 등록 번호판 440x200 mm, cells 59 59|64|59 59 59 59, character height 105 mm, sample 52가3018, NO authority mark"
699
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-3(1)가 (which vehicles take the large plate), Art. 5(1) proviso keeping Annex 5 on two digits, Art. 6 proviso"
700
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95%20%EC%8B%9C%ED%96%89%EA%B7%9C%EC%B9%99&type=XML # 시행규칙 제6조제2항 [전문개정 2004.12.6] — the region-less rule this plate is drawn under"
701
+ notes: >-
702
+ The large non-commercial plate: 440 x 200 mm with 105 mm characters, for
703
+ large buses and for goods and special vehicles at or above four tonnes.
704
+ Article 5(1)'s proviso names Annex 5 alongside Annex 1, so it too stayed
705
+ on the two-digit class code through both reforms — a private 4-tonne
706
+ truck registered today still wears a seven-character mark. Article 2(2)1
707
+ lets an emergency vehicle, and a vehicle whose front sensors clash with a
708
+ 440 mm plate, substitute the ordinary size at the front.
709
+
710
+ # =========================================================================
711
+ # THE PRE-2004 REGIONAL PLATE — the true one-back on the geography axis.
712
+ # =========================================================================
713
+ - id: kr-regional-noncommercial
714
+ class: standard
715
+ categories: [car, bus, van, truck, machine]
716
+ period: { start: 1996, end: 2004 }
717
+ period_evidence: corroboration-only
718
+ matching: strict
719
+ format:
720
+ pattern: "999999"
721
+ regex: '\A\d{6}\z'
722
+ regex_strict: '\A(?:0[1-9]|[1-9]\d)\d{4}\z'
723
+ pattern_note: >-
724
+ Digit skeleton only, and this series elides TWO non-Latin elements, not
725
+ one: the printed mark was 서울12가3456 — a two-syllable AUTHORITY MARK,
726
+ two class digits, one hangul use syllable, four serial digits.
727
+ hangul_field:
728
+ position: 4
729
+ after_skeleton_digits: 2
730
+ script: Hangul
731
+ length: 1
732
+ values: non_commercial
733
+ decode: "plates/_decode/kr-use-syllables.yml"
734
+ authority_mark_field:
735
+ position: 1
736
+ script: Hangul
737
+ length: 2
738
+ decode: "plates/_decode/kr-authority-marks.yml"
739
+ design:
740
+ plate: { w: 335, h: 155, unit: mm }
741
+ background: { color: "#E4DFD8", finish: painted, hex_basis: unsourced, note: "the pre-2004 plate's own colour specification is not reachable: it lived in a 건설교통부고시 outside law.go.kr's archive. The hex is carried over from the current 분홍빛 흰색 standard and is explicitly NOT a sourced claim for this series." }
742
+ foreground: "#393D45"
743
+ foreground_basis: unsourced
744
+ band: { side: none }
745
+ region_encoding: "plates/_decode/kr-authority-marks.yml"
746
+ sources:
747
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95%20%EC%8B%9C%ED%96%89%EA%B7%9C%EC%B9%99&type=XML # 시행규칙 제6조제2항 [전문개정 2004.12.6] — the amendment that confined the authority mark to transport-business vehicles, hence this series' period.end"
748
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 5(1) table image flSeq=5123232 — the two-digit class ranges 01-69/70-79/80-97/98,99 and the 32-syllable non-commercial set, as they stood at the earliest reachable version"
749
+ - "https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%B0%A8%EB%9F%89_%EB%B2%88%ED%98%B8%ED%8C%90 # SECONDARY, used only as a finding aid and cited here for the unpinned 1996-01-01 two-digit-code date; its own footnotes point at 2003 Naver-hosted 연합뉴스/매일경제 reports that were not reachable"
750
+ notes: >-
751
+ THE PLATE KOREA GAVE UP IN 2004, and the only series in this file whose
752
+ period.start rests on corroboration rather than an instrument.
753
+ period.end 2004 is instrument-backed (시행규칙 제6조제2항, wholly amended
754
+ 2004-12-06). period.start 1996 is NOT: the Korean-language encyclopaedia
755
+ article, used as a finding aid under the standing Wikipedia rule, dates
756
+ the two-digit class code to 1 January 1996, its own footnotes point at
757
+ 2003 news reports rather than at an instrument, and law.go.kr's
758
+ administrative-rule archive does not reach back past 2009-08-24, so the
759
+ 건설교통부고시 that would settle it was never in reach. The year is
760
+ recorded with period_evidence: corroboration-only and should be treated
761
+ as the weakest claim in this file. What is NOT in doubt: before the 2004
762
+ amendment a Korean private plate opened with one of the seventeen
763
+ two-syllable authority marks, and after it, none did.
764
+
765
+ # =========================================================================
766
+ # TRANSPORT-BUSINESS (자동차운수사업용) — the YELLOW plates. These are the
767
+ # only Korean plates that still encode geography.
768
+ #
769
+ # CLASS-VOCABULARY NOTE (flagged for the maintainer): _meta/classes.yml has
770
+ # no term for a general for-hire/commercial-carriage plate. `taxi` is defined
771
+ # as "for-hire vehicles where separately serialized or colored", which is the
772
+ # closest available and is what these series carry, but the Korean 운수사업용
773
+ # plate covers route buses and hire goods vehicles as well as taxis. A
774
+ # `commercial` term is proposed in the jurisdiction dossier; nothing is
775
+ # invented here.
776
+ # =========================================================================
777
+ - id: kr-commercial-long
778
+ class: taxi
779
+ categories: [car, bus, van, truck]
780
+ period: { start: 2009 }
781
+ period_evidence: instrument-in-force-upper-bound
782
+ matching: strict
783
+ format:
784
+ pattern: "999999"
785
+ regex: '\A\d{6}\z'
786
+ regex_strict: '\A(?:0[1-9]|[1-9]\d)\d{4}\z'
787
+ pattern_note: >-
788
+ Digit skeleton only; printed mark is 서울52바3108 (Annex 4's own
789
+ sample) — two-syllable authority mark, two class digits, hangul use
790
+ syllable, four serial digits.
791
+ hangul_field:
792
+ position: 4
793
+ after_skeleton_digits: 2
794
+ script: Hangul
795
+ length: 1
796
+ cell_width_mm: 71
797
+ values: commercial_general
798
+ decode: "plates/_decode/kr-use-syllables.yml"
799
+ authority_mark_field:
800
+ position: 1
801
+ script: Hangul
802
+ length: 2
803
+ cell_width_mm: 55
804
+ layout: "two syllables stacked in one 55 mm cell"
805
+ decode: "plates/_decode/kr-authority-marks.yml"
806
+ class_note: "Art. 5(1): 일반사업용 keeps two digits across every vehicle type — 승용 01-69, 승합 70-79, 화물 80-97, 특수 98/99. The three-digit reforms did NOT touch commercial plates."
807
+ design:
808
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
809
+ background: { color: "#FFBC00", finish: painted, hex_basis: munsell-approximate, munsell: "2.5Y 8/16", spec_name_ko: "황색" }
810
+ foreground: "#393D45"
811
+ foreground_basis: cielab-derived
812
+ foreground_spec: "Art. 4(1)2: 자동차운수사업용 : 황색바탕에 검은색문자"
813
+ characters: { height_mm: 83, digit_cell_mm: 55, hangul_cell_mm: 71, authority_cell_mm: 55 }
814
+ band: { side: none }
815
+ rear_differs: false
816
+ region_encoding: "plates/_decode/kr-authority-marks.yml"
817
+ sources:
818
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474371 # Annex 4 drawing: 자동차 운수 사업용 보통 등록 번호판 520x110 mm, cells 32|55(authority)|55 55|71|55 55 55 55|32, character height 83 mm, authority syllables 55 mm each, sample 서울52바3108"
819
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 4(1)2 (yellow ground, black characters), Art. 5(1) 일반사업용 ranges, Art. 6 main clause"
820
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95%20%EC%8B%9C%ED%96%89%EA%B7%9C%EC%B9%99&type=XML # 시행규칙 제6조제2항 — the authority mark is MANDATORY on transport-business plates, rental excepted"
821
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 2(2) lists Annex 4 — in force by 2009-08-24, the upper bound this period.start records"
822
+ notes: >-
823
+ THE YELLOW COMMERCIAL PLATE, and the only current Korean plate that tells
824
+ you where the vehicle is registered. Taxis, route buses and hire goods
825
+ vehicles all wear it, all keep the two-digit class code that private cars
826
+ left behind in 2019, and all carry one of 바/사/아/자/배. period.start
827
+ 2009 is an upper bound for the same archive reason as
828
+ kr-noncommercial-7-long: Annex 4 is present in the earliest reachable
829
+ version of the notice and the 건설교통부고시 that created the 520x110 mm
830
+ commercial plate is not published. Do NOT read a yellow plate as a rental
831
+ car: rentals are white and region-less (Art. 6 proviso) and use 허/하/호.
832
+
833
+ - id: kr-commercial-short
834
+ class: taxi
835
+ categories: [car, bus, van, truck]
836
+ period: { start: 2009 }
837
+ period_evidence: instrument-in-force-upper-bound
838
+ matching: strict
839
+ format:
840
+ pattern: "999999"
841
+ regex: '\A\d{6}\z'
842
+ regex_strict: '\A(?:0[1-9]|[1-9]\d)\d{4}\z'
843
+ pattern_note: >-
844
+ Digit skeleton only. TWO-LINE plate: line 1 is the authority mark then
845
+ the two class digits (서울 39), line 2 is the hangul use syllable then
846
+ the four serial digits (바2764). The skeleton concatenates them in
847
+ reading order.
848
+ hangul_field: { position: 4, after_skeleton_digits: 2, script: Hangul, length: 1, line: 2, decode: "plates/_decode/kr-use-syllables.yml", values: commercial_general }
849
+ authority_mark_field: { position: 1, script: Hangul, length: 2, line: 1, decode: "plates/_decode/kr-authority-marks.yml" }
850
+ design:
851
+ plate: { w: 335, h: 170, unit: mm, tolerance_mm: 0.5 }
852
+ background: { color: "#FFBC00", finish: painted, hex_basis: munsell-approximate, munsell: "2.5Y 8/16", spec_name_ko: "황색" }
853
+ foreground: "#393D45"
854
+ foreground_basis: cielab-derived
855
+ characters: { line1_height_mm: 48, line2_height_mm: 92 }
856
+ lines: 2
857
+ band: { side: none }
858
+ region_encoding: "plates/_decode/kr-authority-marks.yml"
859
+ sources:
860
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474365 # Annex 3 drawing: 자동차 운수 사업용 보통 등록 번호판 335x170 mm, two lines, line 1 서울 39 at 48 mm, line 2 바2764 at 92 mm"
861
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 4(1)2, Art. 5(1), Art. 6"
862
+ notes: >-
863
+ The two-line commercial plate for vehicles that cannot take the 520 mm
864
+ strip. Same yellow, same syllables, same two-digit class code as
865
+ kr-commercial-long; the difference is the layout, which stacks the
866
+ authority mark and class code above the syllable and serial. Its 170 mm
867
+ height against Annex 1's 155 mm is a reliable tell in photographs.
868
+
869
+ - id: kr-commercial-large
870
+ class: taxi
871
+ categories: [bus, truck]
872
+ period: { start: 2009 }
873
+ period_evidence: instrument-in-force-upper-bound
874
+ matching: strict
875
+ format:
876
+ pattern: "999999"
877
+ regex: '\A\d{6}\z'
878
+ regex_strict: '\A(?:[7-9]\d)\d{4}\z'
879
+ pattern_note: "Digit skeleton only. Two lines: 서울 39 over 바2764. Annex 6 serves large buses and 4-tonne-plus goods and special vehicles, so the class code is 70-79, 80-97 or 98/99."
880
+ hangul_field: { position: 4, after_skeleton_digits: 2, script: Hangul, length: 1, line: 2, decode: "plates/_decode/kr-use-syllables.yml", values: commercial_general }
881
+ authority_mark_field: { position: 1, script: Hangul, length: 2, line: 1, decode: "plates/_decode/kr-authority-marks.yml" }
882
+ design:
883
+ plate: { w: 440, h: 220, unit: mm, tolerance_mm: 0.5 }
884
+ background: { color: "#FFBC00", finish: painted, hex_basis: munsell-approximate, munsell: "2.5Y 8/16", spec_name_ko: "황색" }
885
+ foreground: "#393D45"
886
+ foreground_basis: cielab-derived
887
+ characters: { line1_height_mm: 61, line2_height_mm: 116 }
888
+ lines: 2
889
+ band: { side: none }
890
+ region_encoding: "plates/_decode/kr-authority-marks.yml"
891
+ sources:
892
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474383 # Annex 6 drawing: 자동차 운수 사업용 대형 등록 번호판 440x220 mm, line 1 서울 39 at 61 mm, line 2 바2764 at 116 mm"
893
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-3(1)가, Art. 4(1)2, Art. 6"
894
+ notes: >-
895
+ The large commercial plate — the biggest characters in the Korean system
896
+ at 116 mm, and the only Korean plate that is taller than the large
897
+ non-commercial one (220 mm against 200 mm), because the commercial layout
898
+ needs a line for the authority mark that the non-commercial layout does
899
+ not.
900
+
901
+ # =========================================================================
902
+ # ELECTRIC — Annex 18, the blue plate. Sourced, and genuinely surprising.
903
+ # =========================================================================
904
+ - id: kr-electric
905
+ class: electric
906
+ categories: [car]
907
+ period: { start: 2017 } # 2017-06-09, 고시 제2017-152호 부칙 제1조
908
+ period_evidence: enabling-instrument
909
+ matching: strict
910
+ format:
911
+ pattern: "999999"
912
+ regex: '\A\d{6}\z'
913
+ regex_strict: '\A(?:0[1-9]|[1-6]\d)\d{4}\z'
914
+ pattern_note: >-
915
+ Digit skeleton only; the Annex 18 drawing's own sample mark is 52가3108
916
+ — SEVEN characters, two class digits, hangul syllable, four serial
917
+ digits. See the notes: this is not a transcription slip.
918
+ hangul_field:
919
+ position: 3
920
+ after_skeleton_digits: 2
921
+ script: Hangul
922
+ length: 1
923
+ cell_width_mm: 60
924
+ values: non_commercial + rental
925
+ decode: "plates/_decode/kr-use-syllables.yml"
926
+ design:
927
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
928
+ background: { color: "#B9D9F2", finish: retroreflective, hex_basis: pantone-approximate, pantone: "PANTONE 290C", cmyk: "C25 M2 Y0 K0", spec_name_ko: "파란색 (Art. 4(5))" }
929
+ foreground: "#393D45"
930
+ foreground_basis: cielab-derived
931
+ characters: { height_mm: 83, digit_cell_mm: 56, hangul_cell_mm: 60 }
932
+ band:
933
+ side: left
934
+ width_mm: 35.8
935
+ content: "taegeuk + 대한민국 + EV pictogram at the right end"
936
+ color: "#0E4FA0"
937
+ hex_basis: pantone-approximate
938
+ pantone: "PANTONE 2727C"
939
+ pantone_table:
940
+ note: "Annex 18 item 3 마. 색상표 — the only Korean plate whose colours are given in PANTONE, twelve rows, transcribed here in full because they are the whole design"
941
+ rows:
942
+ - { key: A, part_ko: "바탕색", pantone: "PANTONE 290C", cmyk: "C25 M2 Y0 K0" }
943
+ - { key: B, part_ko: "픽토그램 내부", pantone: "PANTONE 283C", cmyk: "C35 M9 Y0 K0" }
944
+ - { key: C, part_ko: "픽토그램 테두리", pantone: "PANTONE 2727C", cmyk: "C71 M42 Y0 K0" }
945
+ - { key: D, part_ko: "태극마크 테두리", pantone: "PANTONE 2727C", cmyk: "C71 M42 Y0 K0" }
946
+ - { key: E, part_ko: "대한민국 글씨(영문포함)", pantone: "PANTONE 2727C", cmyk: "C71 M42 Y0 K0" }
947
+ - { key: F, part_ko: "대한민국 글씨 바탕색", pantone: "PANTONE 2707C", cmyk: "C17 M6 Y0 K0" }
948
+ - { key: G, part_ko: "태극문양 진한색", pantone: "PANTONE 292C", cmyk: "C49 M11 Y0 K0" }
949
+ - { key: H, part_ko: "태극문양 연한색", pantone: "PANTONE 283C", cmyk: "C35 M9 Y0 K0" }
950
+ - { key: I, part_ko: "태극패턴 큰무늬 진한색", pantone: "PANTONE 291C", cmyk: "C35 M10 Y0 K0" }
951
+ - { key: J, part_ko: "태극패턴 큰무늬 연한색", pantone: "PANTONE 2708C", cmyk: "C17 M17 Y0 K0" }
952
+ - { key: K, part_ko: "태극패턴 작은무늬 진한색", pantone: "PANTONE 544C", cmyk: "C23 M9 Y3 K0" }
953
+ - { key: L, part_ko: "태극패턴 작은무늬 연한색", pantone: "PANTONE 545C", cmyk: "C20 M7 Y5 K0" }
954
+ emblem: { present: true, rendered: placeholder, note: "taegeuk mark, taegeuk background pattern and an EV pictogram; national symbols, §3 placeholder rule" }
955
+ rear_differs: false
956
+ region_encoding: none
957
+ sources:
958
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000079151&type=XML # 고시 제2017-152호 부칙 제1조: '이 고시는 발령한 날부터 시행한다. 다만, 제1조의2 제4호에 의한 전기자동차 번호판 부착은 2017년 6월 9일부터 시행한다' — the period.start"
959
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474493 # Annex 18: 전기자동차 번호판 520x110 mm; item 1 '번호판의 규격 : [별표 2]의 비사업용 보통등록 번호판과 같음'; item 3 the twelve-row PANTONE table above; the 다.상징 문양 drawing with sample mark 52가3108 and the EV pictogram"
960
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-3(4) (which vehicles take the EV plate), Art. 2(5) (film construction MANDATORY for EV plates), Art. 4(5) (blue ground, black characters), Art. 5(1) proviso naming Annex 18 among the two-digit plates"
961
+ notes: >-
962
+ THE BLUE EV PLATE, in force 9 June 2017, and the one place where this
963
+ file's reading of the notice will surprise a Korean reader. Two textual
964
+ facts point the same way and both are quoted above: Annex 18 item 1 fixes
965
+ the plate's specification as "the same as the Annex 2 non-commercial
966
+ ordinary plate" — Annex 2 being the SEVEN-character 520x110 mm plate —
967
+ and Article 5(1)'s proviso expressly names Annex 18 among the plates whose
968
+ class code stays at 01-69 for passenger cars. The Annex 18 drawing agrees:
969
+ its sample mark is 52가3108 and its cell layout leaves room for seven
970
+ characters after the 35.8 mm taegeuk block on the left and the 35.2 mm EV
971
+ pictogram on the right. So the instrument, read straight, says a Korean
972
+ EV plate is a seven-character mark. Field reports of eight-character blue
973
+ plates are common and this file does NOT reconcile them; the conflict is
974
+ logged as the top verification target in the jurisdiction dossier. Scope:
975
+ Art. 1-3(4) gives the EV plate to electric vehicles other than
976
+ transport-business, corporate-business and emergency vehicles, but
977
+ expressly INCLUDES rental vehicles.
978
+
979
+ # =========================================================================
980
+ # CORPORATE BUSINESS (법인업무용) — the light-green plate, from 2024.
981
+ # =========================================================================
982
+ - id: kr-corporate-green
983
+ class: standard
984
+ categories: [car]
985
+ period: { start: 2024 } # 2024-01-01, 고시 제2023-954호 부칙 제1조
986
+ period_evidence: enabling-instrument
987
+ matching: strict
988
+ format:
989
+ pattern: "9999999"
990
+ regex: '\A\d{7}\z'
991
+ regex_strict: '\A[1-6]\d{6}\z'
992
+ pattern_note: "Digit skeleton only; eight-character mark on the ordinary non-commercial layout, e.g. 123가4568 on a light-green ground."
993
+ hangul_field:
994
+ position: 4
995
+ after_skeleton_digits: 3
996
+ script: Hangul
997
+ length: 1
998
+ values: non_commercial
999
+ decode: "plates/_decode/kr-use-syllables.yml"
1000
+ design:
1001
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
1002
+ background: { color: "#97BB36", finish: retroreflective, hex_basis: cielab-derived, spec_name_ko: "연녹색 (film)", spec: "CIE L* 71.15 a* -30.67 b* 60.02, ΔE00 ≤ 5 (CIEDE2000)" }
1003
+ background_paint_variant: { color: "#ADBD4C", hex_basis: cielab-derived, spec: "연녹색 paint standard, CIE L* 73.37 a* -21.17 b* 53.88" }
1004
+ foreground: "#393D45"
1005
+ foreground_basis: cielab-derived
1006
+ characters:
1007
+ height_mm: 85
1008
+ digit_cell_mm: 50
1009
+ hangul_cell_mm: 85
1010
+ basis: >-
1011
+ DERIVED (wave-2 render pass): this series carries no characters
1012
+ block of its own; its notes state "Format is the ordinary
1013
+ eight-character non-commercial mark; only the ground colour
1014
+ changes", so these figures borrow kr-noncommercial-8-film's
1015
+ Annex 2-2 values. Confirm against the corporate-plate annex when
1016
+ it is fetched.
1017
+ band: { side: left, width_mm: 56.3, band_cell_mm: 65.0, content: "taegeuk + KOR", color: "#0A19FC", hex_basis: cmyk-naive }
1018
+ rear_differs: false
1019
+ region_encoding: none
1020
+ sources:
1021
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000233340&type=XML # 고시 제2023-954호 부칙 제1조 ('이 고시는 2024년 1월 1일부터 시행한다') and 부칙 제2조 (applies to vehicles registered or rented on or after that date; existing eligible vehicles MAY change over)"
1022
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-2(5) (definition of 법인업무용 자동차), Art. 1-3(5) (the plate class), Art. 4(1)1(다) (연녹색바탕에 검은색 문자), Art. 4(4)나2) (the CIELAB value and CIEDE2000 tolerance)"
1023
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=150966221 # Art. 4(4)나2) colour image: 연녹색 L* 71.15 a* -30.67 b* 60.02"
1024
+ notes: >-
1025
+ THE LIGHT-GREEN CORPORATE PLATE, in force 1 January 2024 — a tax-policy
1026
+ instrument wearing a plate. Article 1-2(5) defines 법인업무용 자동차 by
1027
+ ACQUISITION VALUE: passenger cars of 80 million won or more that are
1028
+ (가) public vehicles of central and local government, the courts, the
1029
+ National Assembly, the Constitutional Court or the election commissions;
1030
+ (나) non-business passenger cars whose registered owner is a corporation,
1031
+ leasing-company cars counting only where the lessee is a corporation; or
1032
+ (다) rental-company cars hired to a corporation, where the hire runs a
1033
+ year or more. Article 1-3(5) lets an agency head, in consultation with
1034
+ the Minister, exempt a vehicle used directly for close protection,
1035
+ security or criminal investigation. Format is the ordinary eight-character
1036
+ non-commercial mark; only the ground colour changes, which is exactly why
1037
+ it is a separate series and not a variant — Art. 4(4)나2) gives it its own
1038
+ colorimetry and its own CIEDE2000 tolerance.
1039
+
1040
+ # =========================================================================
1041
+ # DIPLOMATIC / CONSULAR — Annexes 7 and 8. The only plates with a hyphen.
1042
+ # =========================================================================
1043
+ - id: kr-diplomatic-long
1044
+ class: diplomatic
1045
+ categories: [car]
1046
+ period: { start: 2009 }
1047
+ period_evidence: instrument-in-force-upper-bound
1048
+ matching: strict
1049
+ format:
1050
+ pattern: "999-999"
1051
+ regex: '\A\d{3}-\d{3}\z'
1052
+ pattern_note: >-
1053
+ The hyphen here is REAL: Annex 8 draws it as a glyph with its own cell
1054
+ between the two three-digit groups. The two-syllable hangul WORD
1055
+ (외교, 영사, 준외, 준영, 국기, 협정 or 대표) precedes the digits and is
1056
+ carried in hangul_field, not in the pattern.
1057
+ hangul_field:
1058
+ position: 1
1059
+ script: Hangul
1060
+ length: 2
1061
+ cell_width_mm: 61
1062
+ layout: "two syllables stacked in one cell at the left of the plate"
1063
+ values: diplomatic
1064
+ decode: "plates/_decode/kr-use-syllables.yml"
1065
+ design:
1066
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
1067
+ background: { color: "#1E2B57", finish: painted, hex_basis: munsell-approximate, munsell: "7.5PB 2/8", spec_name_ko: "감청색" }
1068
+ foreground: "#FFFFFF"
1069
+ foreground_basis: statutory-description
1070
+ foreground_spec: "Art. 4(1)1(나): 외교용(외교, 영사, 준외, 준영, 국기, 협정, 대표) : 감청색바탕에 흰색문자"
1071
+ characters: { height_mm: 55, note: "the digits are drawn 55 mm over a 110 mm plate, half the height of an ordinary plate's 83 mm, because the layout carries a stacked word and two groups" }
1072
+ band: { side: none }
1073
+ rear_differs: false
1074
+ region_encoding: none
1075
+ sources:
1076
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474395 # Annex 8 drawing: 주한·외교공관·공관원 자동차 번호판 520x110 mm; horizontal chain 20 · 25.5 · 35.5 · 33.5 · 40 · 11 · 40 · 11 · 40 · 22.5 · 23.5 · 22.5 · 40 · 11 · 40 · 11 · 40 · 33 · 20 summing to 520; sample mark 외교 321-678 with a drawn hyphen"
1077
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 4(1)1(나) colour and the seven-word list; Art. 5(1) table 외교용 rows"
1078
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 2(2) lists Annexes 7 and 8 — in force by 2009-08-24, the upper bound this period.start records"
1079
+ variants:
1080
+ - class: consular
1081
+ note: >-
1082
+ The consular plate is this plate with 영사 in place of 외교, and the
1083
+ quasi-diplomatic (준외), quasi-consular (준영), international-
1084
+ organisation (국기) and other-diplomatic (협정, 대표) plates likewise.
1085
+ Same format, same colours, same period — a WORD-only variant, so a
1086
+ sub-entry per PRD-PLATES §2.3 rather than six near-identical series.
1087
+ The full seven-word list with its Korean category names is in
1088
+ plates/_decode/kr-use-syllables.yml under `diplomatic`.
1089
+ sources:
1090
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 5(1) table rows 외교관용/영사용/준외교관용/준영사용/국제기구용/기타외교용"
1091
+ notes: >-
1092
+ THE DARK-NAVY DIPLOMATIC PLATE, and the only Korean plate that prints a
1093
+ separator glyph — a hyphen with its own 22.5 mm cell between two
1094
+ three-digit groups. It is also the only Korean plate whose hangul element
1095
+ is a WORD rather than a syllable and the only one where that element comes
1096
+ FIRST. The colour, 감청색, is given as a Munsell notation (7.5PB 2/8), not
1097
+ a coordinate, so the hex is an approximation and the notation is the
1098
+ claim. Six further diplomatic categories share the plate and are recorded
1099
+ as a variant. No decode of the digits is published: whether 321-678 encodes
1100
+ a mission is not stated in the notice and is not guessed here.
1101
+
1102
+ - id: kr-diplomatic-short
1103
+ class: diplomatic
1104
+ categories: [car]
1105
+ period: { start: 2009 }
1106
+ period_evidence: instrument-in-force-upper-bound
1107
+ matching: strict
1108
+ format:
1109
+ pattern: "999-999"
1110
+ regex: '\A\d{3}-\d{3}\z'
1111
+ pattern_note: "Two-line plate: line 1 is the hangul word spread across the width (외 교), line 2 is 321-678 with a drawn hyphen."
1112
+ hangul_field: { position: 1, script: Hangul, length: 2, line: 1, values: diplomatic, decode: "plates/_decode/kr-use-syllables.yml" }
1113
+ design:
1114
+ plate: { w: 335, h: 155, unit: mm, tolerance_mm: 0.5 }
1115
+ background: { color: "#1E2B57", finish: painted, hex_basis: munsell-approximate, munsell: "7.5PB 2/8", spec_name_ko: "감청색" }
1116
+ foreground: "#FFFFFF"
1117
+ foreground_basis: statutory-description
1118
+ characters: { line1_height_mm: 34, line2_height_mm: 60 }
1119
+ lines: 2
1120
+ band: { side: none }
1121
+ region_encoding: none
1122
+ sources:
1123
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474389 # Annex 7 drawing: 주한·외교공관·공관원 자동차 번호판 335x155 mm, two lines, word at 34 mm on line 1, digits at 60 mm on line 2, sample 외교 321-678"
1124
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 4(1)1(나); Art. 5(1) 외교용 rows"
1125
+ notes: >-
1126
+ The two-line diplomatic plate for vehicles that cannot take the 520 mm
1127
+ strip. Identical serial grammar to kr-diplomatic-long including the drawn
1128
+ hyphen; the difference is that the hangul word is set across the top line
1129
+ with the two syllables spaced apart rather than stacked in a left cell.
1130
+
1131
+ # =========================================================================
1132
+ # TEMPORARY OPERATION (임시운행허가) — Annexes 9 to 12.
1133
+ # =========================================================================
1134
+ - id: kr-temporary-long
1135
+ class: temporary
1136
+ categories: [car, bus, van, truck, machine]
1137
+ period: { start: 2009 }
1138
+ period_evidence: instrument-in-force-upper-bound
1139
+ matching: strict
1140
+ format:
1141
+ pattern: "99999"
1142
+ regex: '\A\d{5}\z'
1143
+ pattern_note: >-
1144
+ Digit skeleton only; the printed mark is 임01234 — the fixed hangul
1145
+ syllable 임 (from 임시, "temporary") followed by five digits. 임 is a
1146
+ LITERAL, not a use category: it identifies the plate type and takes no
1147
+ other value.
1148
+ hangul_field:
1149
+ position: 1
1150
+ script: Hangul
1151
+ length: 1
1152
+ cell_width_mm: 150
1153
+ fixed_value: "임"
1154
+ note: "not in plates/_decode/kr-use-syllables.yml — that table covers use categories, and 임 is a plate-type literal"
1155
+ design:
1156
+ plate: { w: 520, h: 110, unit: mm, tolerance_mm: 0.5 }
1157
+ background: { color: "#F2F2F2", finish: painted, hex_basis: munsell-approximate, munsell: "N9.5", spec_name_ko: "흰색" }
1158
+ foreground: "#282828"
1159
+ foreground_basis: munsell-approximate
1160
+ foreground_spec: "검은색, Munsell N1.5"
1161
+ overprint: { type: diagonal-stripe, color: "#B01A2E", hex_basis: munsell-approximate, munsell: "5R 4/14", width_mm: 3, note: "Art. 4(3): 임시운행허가번호판은 흰색바탕에 검은색문자로 하고 3㎜폭의 적색사선을 긋는다 — a 3 mm red diagonal line is ruled across the plate" }
1162
+ issuer_text: { present: true, note: "Art. 2(3) requires the issuing office name; the Annex 10 drawing prints 경상남도지사 (Governor of South Gyeongsang) below the 임" }
1163
+ characters: { height_mm: 85 }
1164
+ band: { side: none }
1165
+ region_encoding: none
1166
+ region_encoding_note: "the issuing officer's TITLE is printed in full rather than as a coded mark — see plates/_decode/kr-authority-marks.yml, temporary_plate_issuer"
1167
+ sources:
1168
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474407 # Annex 10 drawing: 허가 기간이 11일 이상인 임시운행 허가 번호판 520x110 mm, 임 in a 150 mm cell, five digits at 55 mm each, issuer 경상남도지사, red diagonals"
1169
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 1-3(3) (임시운행허가번호판 under 자동차관리법 제27조), Art. 2(3), Art. 4(3)"
1170
+ notes: >-
1171
+ The temporary-operation plate for permits of ELEVEN DAYS OR MORE, long
1172
+ format. White with a 3 mm red diagonal, the literal 임, five digits and
1173
+ the issuing officer's title. Under 「자동차관리법」 제10조제4항 a vehicle
1174
+ without a proper registration plate may not be driven "except where a
1175
+ temporary-operation plate under Article 27(2) is attached", which is what
1176
+ this plate is for. 고시 제2025-121호 amends Annexes 9 and 10 with effect
1177
+ nine months after issuance; the drawing cited is the amended one.
1178
+
1179
+ - id: kr-temporary-short-plate
1180
+ class: temporary
1181
+ categories: [car, bus, van, truck, machine]
1182
+ period: { start: 2009 }
1183
+ period_evidence: instrument-in-force-upper-bound
1184
+ matching: strict
1185
+ format:
1186
+ pattern: "99999"
1187
+ regex: '\A\d{5}\z'
1188
+ pattern_note: "Digit skeleton only; printed mark 임01234 on a 335x155 mm plate."
1189
+ hangul_field: { position: 1, script: Hangul, length: 1, fixed_value: "임" }
1190
+ design:
1191
+ plate: { w: 335, h: 155, unit: mm, tolerance_mm: 0.5 }
1192
+ background: { color: "#F2F2F2", finish: painted, hex_basis: munsell-approximate, munsell: "N9.5", spec_name_ko: "흰색" }
1193
+ foreground: "#282828"
1194
+ foreground_basis: munsell-approximate
1195
+ overprint: { type: diagonal-stripe, color: "#B01A2E", hex_basis: munsell-approximate, munsell: "5R 4/14", width_mm: 3 }
1196
+ issuer_text: { present: true, note: "the Annex 9 drawing prints 경기도지사 (Governor of Gyeonggi) in a 150 x 28 mm block at lower right" }
1197
+ characters: { height_mm: 77 }
1198
+ band: { side: none }
1199
+ region_encoding: none
1200
+ sources:
1201
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474401 # Annex 9 drawing: 허가 기간이 11일 이상인 임시운행 허가 번호판 335x155 mm, 임 at 79.5 mm cell, five digits at 45 mm, issuer 경기도지사"
1202
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(3), Art. 4(3)"
1203
+ notes: >-
1204
+ The eleven-days-or-more temporary plate in the compact 335 x 155 mm size.
1205
+ Same grammar and same red diagonal as kr-temporary-long; recorded
1206
+ separately because the annex, the dimensions and the character height all
1207
+ differ, and because a parse consumer distinguishing plate photos needs
1208
+ both.
1209
+
1210
+ - id: kr-temporary-shortterm
1211
+ class: temporary
1212
+ categories: [car, bus, van, truck, machine]
1213
+ period: { start: 2009 }
1214
+ period_evidence: instrument-in-force-upper-bound
1215
+ matching: strict
1216
+ format:
1217
+ pattern: "999999"
1218
+ regex: '\A\d{6}\z'
1219
+ pattern_note: >-
1220
+ Digit skeleton only, and this plate has NO hangul serial element at all
1221
+ — six digits alone. What it does carry, printed above the digits, is
1222
+ the PERMIT PERIOD as a date range, e.g. 05.09.05~09.14 까지 ("until"),
1223
+ and the issuing officer's title below.
1224
+ validity_text_field:
1225
+ position: "line 1"
1226
+ script: "Hangul + digits"
1227
+ content: "permit start and end dates, terminated by 까지"
1228
+ note: "not a serial element; it is why this plate needs no expiry lookup"
1229
+ design:
1230
+ plate: { w: 335, h: 170, unit: mm }
1231
+ plate_variants:
1232
+ - { w: 520, h: 110, unit: mm, note: "Annex 12, the long format of the same plate" }
1233
+ material: "wooden board of 2.5 mm or more — Art. 2(1) proviso; the ONLY non-aluminium plate in the Korean system, and Art. 2(4) excuses it from the 1.3-1.6 mm embossing every other plate requires"
1234
+ background: { color: "#F2F2F2", finish: painted, hex_basis: munsell-approximate, munsell: "N9.5", spec_name_ko: "흰색" }
1235
+ foreground: "#282828"
1236
+ foreground_basis: munsell-approximate
1237
+ overprint: { type: diagonal-stripe, color: "#B01A2E", hex_basis: munsell-approximate, munsell: "5R 4/14", width_mm: 3 }
1238
+ issuer_text: { present: true, note: "the Annex 11 drawing prints 경기도지사" }
1239
+ characters: { height_mm: 74 }
1240
+ band: { side: none }
1241
+ region_encoding: none
1242
+ sources:
1243
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474413 # Annex 11 drawing: 허가 기간이 10일 이하인 임시운행 허가 번호판 335x170 mm, date-range line '05.09.05~09.14 까지' at 30 mm, six digits at 74 mm, issuer 경기도지사"
1244
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(1) proviso (wooden board), Art. 2(4) (embossing excused), Art. 2(3) (Annexes 11 and 12), Art. 4(3)"
1245
+ notes: >-
1246
+ THE WOODEN PLATE. For temporary-operation permits of TEN DAYS OR LESS,
1247
+ Article 2(1)'s proviso replaces the 1 mm aluminium blank with a wooden
1248
+ board of 2.5 mm or more, and Article 2(4) excuses it from embossing — the
1249
+ only Korean plate that is neither metal nor raised. Six digits, no hangul
1250
+ in the serial, and the permit's own expiry printed on its face. A
1251
+ consumer matching this regex should note that six bare digits are also the
1252
+ skeleton of several other Korean series; the date line and the wooden
1253
+ construction are what actually identify it.
1254
+
1255
+ # =========================================================================
1256
+ # MOTORCYCLES (이륜자동차). 「자동차관리법」 제49조 + 제52조: motorcycles are
1257
+ # 사용신고 (use-notification) vehicles, not 등록 (registration) vehicles, and
1258
+ # the Act applies to them by cross-reference with "등록번호판" read as
1259
+ # "이륜자동차번호판".
1260
+ # =========================================================================
1261
+ - id: kr-motorcycle-2026
1262
+ class: motorcycle
1263
+ categories: [motorcycle]
1264
+ period: { start: 2026 } # 2026-03-20
1265
+ period_evidence: enabling-instrument
1266
+ matching: strict
1267
+ format:
1268
+ pattern: "999999"
1269
+ regex: '\A\d{6}\z'
1270
+ regex_strict: '\A[1-9]\d{5}\z'
1271
+ pattern_note: >-
1272
+ Digit skeleton only; the printed mark is 1가2 over 3456 on two lines —
1273
+ a one-digit VEHICLE-TYPE code, a hangul USE syllable, a one-digit use
1274
+ suffix, then a four-digit serial. Art. 5(2): "1. 차종 기호: 1부터
1275
+ 9까지의 숫자 1자리 기호 2. 용도 기호: 제1항에 따른 용도별 비사업용 기호
1276
+ 1자리와 1부터 9까지의 숫자 1자리를 순서대로 표시한 2자리 기호". Both
1277
+ digit fields exclude 0, which is what regex_strict encodes for the
1278
+ leading position; the suffix digit's 1-9 range is recorded in
1279
+ hangul_field rather than in the regex because the syllable sits between
1280
+ them.
1281
+ hangul_field:
1282
+ position: 2
1283
+ after_skeleton_digits: 1
1284
+ script: Hangul
1285
+ length: 1
1286
+ cell_width_mm: 48
1287
+ values: non_commercial
1288
+ followed_by: "one digit 1-9"
1289
+ decode: "plates/_decode/kr-use-syllables.yml"
1290
+ design:
1291
+ plate: { w: 210, h: 150, unit: mm }
1292
+ background: { color: "#E4DFD8", finish: painted, hex_basis: cielab-derived, spec_name_ko: "분홍빛 흰색", spec: "Art. 4(2): 이륜자동차번호판은 분홍빛 흰색 바탕에 보랏빛 검은색 문자로 한다" }
1293
+ foreground: "#393D45"
1294
+ foreground_basis: cielab-derived
1295
+ characters: { line1_height_mm: 46.5, line2_height_mm: 68, digit_cell_line1_mm: 31.5, digit_cell_line2_mm: 45 }
1296
+ lines: 2
1297
+ band: { side: none }
1298
+ region_encoding: none
1299
+ region_encoding_note: "Art. 6 proviso expressly exempts the Annex 15-2 plate from the authority mark — the 2026 change that took geography off Korean motorcycles"
1300
+ sources:
1301
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # 고시 제2025-121호 부칙 제1조: '제2조제2항, 제4조제2항, 제5조제2항 및 제3항, 제6항의 개정규정은 2026년 3월 20일부터 시행한다' — the period.start; Art. 5(2); Art. 4(2); Art. 6 proviso"
1302
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000268520&type=XML # 고시 제2025-676호 부칙: '다만, 별표 15의2 제2호의 개정규정은 2026년 3월 20일부터 시행한다' — the character-metric amendment lands on the same day"
1303
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474471 # Annex 15-2 drawing: 이륜자동차번호판 210x150 mm, line 1 cells 31.5|48|31.5 at 46.5 mm, line 2 four cells of 45 at 68 mm, sample mark 1가2 / 3456"
1304
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=law&LM=%EC%9E%90%EB%8F%99%EC%B0%A8%EA%B4%80%EB%A6%AC%EB%B2%95&type=XML # 자동차관리법 제49조 (이륜자동차 사용신고) and 제52조 (applying the registration-plate provisions to motorcycles)"
1305
+ notes: >-
1306
+ THE NEW KOREAN MOTORCYCLE PLATE, in force 20 March 2026 — bigger
1307
+ (210 x 150 mm against 210 x 115 mm), region-less, and with a genuinely new
1308
+ grammar: a leading vehicle-type digit that no car plate has, and a
1309
+ two-character use code made of a syllable plus a digit. It is the first
1310
+ Korean motorcycle plate to carry no geography, finishing on two wheels
1311
+ what the 2004 amendment did on four. The colours also change: Article
1312
+ 4(2) puts this plate on the same pinkish-white/purplish-black pair as
1313
+ cars, where the Annex 13/14/15 plate it replaces is white with BLUE
1314
+ characters.
1315
+
1316
+ - id: kr-motorcycle-city
1317
+ class: motorcycle
1318
+ categories: [motorcycle]
1319
+ period: { start: 2009 }
1320
+ period_evidence: instrument-in-force-upper-bound
1321
+ matching: strict
1322
+ format:
1323
+ pattern: "9999"
1324
+ regex: '\A\d{4}\z'
1325
+ pattern_note: >-
1326
+ Digit skeleton only, and this series elides THREE hangul elements: the
1327
+ printed mark is 서울 중 over 가1234 — a two-syllable provincial
1328
+ authority mark, a one-to-three-syllable city/county/district name, then
1329
+ a hangul use syllable and the four-digit serial. Only the four digits
1330
+ survive into the pattern.
1331
+ hangul_field:
1332
+ position: 3
1333
+ script: Hangul
1334
+ length: 1
1335
+ cell_width_mm: 40
1336
+ values: motorcycle_legacy
1337
+ decode: "plates/_decode/kr-use-syllables.yml"
1338
+ note: "Art. 5(3)'s 28-syllable set, which differs from the car set — it includes 차·카·타·파·하·처·커·터·퍼·허 and no ㅗ or ㅜ row"
1339
+ authority_mark_field:
1340
+ position: 1
1341
+ script: Hangul
1342
+ length: 2
1343
+ decode: "plates/_decode/kr-authority-marks.yml"
1344
+ local_name_field:
1345
+ position: 2
1346
+ script: Hangul
1347
+ length: "1-3"
1348
+ enumerated: false
1349
+ note: "Art. 6 main clause requires the 시/군/구 name; Annexes 13, 14 and 15 are the same plate drawn for one-, two- and three-syllable names. The list of names is not published in the notice."
1350
+ design:
1351
+ plate: { w: 210, h: 115, unit: mm, tolerance_mm: 0.5 }
1352
+ background: { color: "#F2F2F2", finish: painted, hex_basis: munsell-approximate, munsell: "N9.5", spec_name_ko: "흰색" }
1353
+ foreground: "#1F3F8F"
1354
+ foreground_basis: munsell-approximate
1355
+ foreground_spec: "청색, Munsell 2.5PB 3/13 — Art. 4(2) proviso: 제2조제2항제3호에 따른 이륜자동차번호판은 흰색 바탕에 청색 문자로 한다"
1356
+ characters: { line1_height_mm: 20, line2_height_mm: 51, digit_cell_mm: 35 }
1357
+ lines: 2
1358
+ band: { side: none }
1359
+ region_encoding: "plates/_decode/kr-authority-marks.yml"
1360
+ sources:
1361
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474425 # Annex 13 drawing: 이륜자동차 번호판(시·군·구의 명칭이 한 자리인 경우) 210x115 mm, line 1 서울 중 at 20 mm, line 2 가1234 at 51 mm"
1362
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474431 # Annex 14 drawing, two-syllable local name, sample 서울 관악 / 가1234"
1363
+ - "https://www.law.go.kr/LSW/flDownload.do?flSeq=158474437 # Annex 15 drawing, three-syllable local name"
1364
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2100000256300&type=XML # Art. 2(2)3 (when this plate may still be used), Art. 4(2) proviso (white ground, BLUE characters), Art. 5(3) (the 28-syllable set), Art. 6 main clause (provincial mark plus city/county/district name)"
1365
+ - "https://www.law.go.kr/DRF/lawService.do?OC=test&target=admrul&ID=2000000009069&type=XML # 고시 제2009-812호 Art. 2(2) lists Annexes 13, 14, 15 — in force by 2009-08-24, the upper bound this period.start records"
1366
+ notes: >-
1367
+ THE CITY-NAMED MOTORCYCLE PLATE — white with BLUE characters, the only
1368
+ blue-lettered plate in the Korean system, and the only current plate that
1369
+ names a district rather than just a province. From 20 March 2026 it is no
1370
+ longer the default: Article 2(2)3 keeps it alive only where mounting
1371
+ space is short or where lamps and reflectors would clash with the larger
1372
+ Annex 15-2 plate, so it stays OPEN rather than ended. Its use-syllable set
1373
+ is its own (Art. 5(3), 28 syllables including the aspirates 차·카·타·파·하
1374
+ that never appear on a car). period.start 2009 is the archive upper bound,
1375
+ not a start.