@@ -5,3 +5,267 @@ A growing collection of hand-crafted high-quality schemas by Sourcemeta.
55
66> [ !CAUTION]
77> This repository is a work-in-progress and not ready for general use yet.
8+
9+ Roadmap
10+ -------
11+
12+ This section tracks standards and specifications that should ideally be covered in this library. Checkmarks (✓) indicate completed schemas.
13+
14+ ### IETF RFCs (Internet Engineering Task Force)
15+
16+ #### HTTP (Hypertext Transfer Protocol)
17+ - ✓ [ RFC 9110] ( https://www.rfc-editor.org/rfc/rfc9110 ) - HTTP Semantics
18+ - ✓ Status codes (all classes, standard enum)
19+ - ✓ Methods (generic pattern, standard enum)
20+ - ✓ ETags (strong, weak, combined)
21+ - ✓ HTTP/HTTPS URLs
22+ - [ ] Header field names
23+ - [ ] Header field values
24+ - [ ] Content-Type values
25+ - [ ] Cache-Control directives
26+ - [ ] Accept header values
27+ - [ ] Content-Encoding values
28+ - [ ] Transfer-Encoding values
29+ - [ RFC 5789] ( https://www.rfc-editor.org/rfc/rfc5789 ) - PATCH Method (✓ included in method-standard)
30+ - [ RFC 4918] ( https://www.rfc-editor.org/rfc/rfc4918 ) - WebDAV (✓ methods included in method-standard)
31+ - [ RFC 6265] ( https://www.rfc-editor.org/rfc/rfc6265 ) - HTTP State Management (Cookies)
32+ - [ ] Cookie names
33+ - [ ] Cookie values
34+ - [ ] Set-Cookie directives
35+ - [ RFC 7230-7235] ( https://www.rfc-editor.org/rfc/rfc7230 ) - HTTP/1.1 Message Syntax and Routing
36+ - [ ] Request-Line
37+ - [ ] Status-Line
38+ - [ RFC 7540] ( https://www.rfc-editor.org/rfc/rfc7540 ) - HTTP/2
39+ - [ RFC 9113] ( https://www.rfc-editor.org/rfc/rfc9113 ) - HTTP/2 (updated)
40+
41+ #### URI/URL (Uniform Resource Identifiers)
42+ - ✓ [ RFC 3986] ( https://www.rfc-editor.org/rfc/rfc3986 ) - URI Generic Syntax
43+ - ✓ URI (generic)
44+ - ✓ URL
45+ - ✓ URN
46+ - ✓ URI references
47+ - ✓ Relative references
48+ - [ ] URI schemes (specific: ftp, file, ws, wss, etc.)
49+ - [ ] Authority component
50+ - [ ] Path segments
51+ - [ ] Query strings
52+ - [ ] Fragments
53+
54+ #### Email
55+ - ✓ [ RFC 5322] ( https://www.rfc-editor.org/rfc/rfc5322 ) - Internet Message Format
56+ - ✓ Email addresses
57+ - [ ] Email headers
58+ - [ ] Message-ID
59+ - [ RFC 6854] ( https://www.rfc-editor.org/rfc/rfc6854 ) - Group syntax in From and Sender headers
60+ - [ RFC 2045-2049] ( https://www.rfc-editor.org/rfc/rfc2045 ) - MIME
61+ - [ ] MIME types
62+ - [ ] Content-Type headers
63+ - [ ] Content-Disposition
64+ - [ ] Multipart boundaries
65+
66+ #### JSON Related
67+ - ✓ [ RFC 6901] ( https://www.rfc-editor.org/rfc/rfc6901 ) - JSON Pointer
68+ - [ RFC 6902] ( https://www.rfc-editor.org/rfc/rfc6902 ) - JSON Patch
69+ - [ ] JSON Patch operations
70+ - [ ] JSON Patch documents
71+ - [ RFC 7396] ( https://www.rfc-editor.org/rfc/rfc7396 ) - JSON Merge Patch
72+ - ✓ [ RFC 9457] ( https://www.rfc-editor.org/rfc/rfc9457 ) - Problem Details for HTTP APIs
73+ - [ RFC 8259] ( https://www.rfc-editor.org/rfc/rfc8259 ) - JSON Data Interchange Format
74+ - [ ] JSON values (with strict validation)
75+
76+ #### Date and Time
77+ - [ RFC 3339] ( https://www.rfc-editor.org/rfc/rfc3339 ) - Date and Time on the Internet
78+ - [ ] date-time format
79+ - [ ] date format
80+ - [ ] time format
81+ - [ ] duration format
82+ - [ RFC 2822] ( https://www.rfc-editor.org/rfc/rfc2822 ) - Internet Message Format (date-time)
83+
84+ #### Authentication and Security
85+ - [ RFC 7519] ( https://www.rfc-editor.org/rfc/rfc7519 ) - JSON Web Token (JWT)
86+ - [ ] JWT structure
87+ - [ ] JWT claims (standard and custom)
88+ - [ RFC 7515] ( https://www.rfc-editor.org/rfc/rfc7515 ) - JSON Web Signature (JWS)
89+ - [ RFC 7516] ( https://www.rfc-editor.org/rfc/rfc7516 ) - JSON Web Encryption (JWE)
90+ - [ RFC 7517] ( https://www.rfc-editor.org/rfc/rfc7517 ) - JSON Web Key (JWK)
91+ - [ RFC 6749] ( https://www.rfc-editor.org/rfc/rfc6749 ) - OAuth 2.0
92+ - [ ] Authorization requests
93+ - [ ] Token responses
94+ - [ RFC 8414] ( https://www.rfc-editor.org/rfc/rfc8414 ) - OAuth 2.0 Authorization Server Metadata
95+
96+ #### Identifiers
97+ - [ RFC 4122] ( https://www.rfc-editor.org/rfc/rfc4122 ) - UUID
98+ - [ ] UUID v1 (time-based)
99+ - [ ] UUID v4 (random)
100+ - [ ] UUID v5 (name-based SHA-1)
101+ - [ ] UUID generic format
102+ - [ RFC 9562] ( https://www.rfc-editor.org/rfc/rfc9562 ) - UUID (updated)
103+ - [ ] UUID v6 (time-ordered)
104+ - [ ] UUID v7 (Unix Epoch time-based)
105+ - [ ] UUID v8 (custom)
106+
107+ #### Network and IP
108+ - [ RFC 791] ( https://www.rfc-editor.org/rfc/rfc791 ) - Internet Protocol (IPv4)
109+ - [ ] IPv4 addresses
110+ - [ ] IPv4 CIDR notation
111+ - [ RFC 4291] ( https://www.rfc-editor.org/rfc/rfc4291 ) - IPv6 Addressing Architecture
112+ - [ ] IPv6 addresses (full, compressed)
113+ - [ ] IPv6 CIDR notation
114+ - [ RFC 1034] ( https://www.rfc-editor.org/rfc/rfc1034 ) - Domain Names
115+ - [ ] Domain names (DNS)
116+ - [ ] Hostnames
117+ - [ ] Fully qualified domain names (FQDN)
118+ - [ RFC 952] ( https://www.rfc-editor.org/rfc/rfc952 ) - Hostname specification
119+ - [ RFC 5952] ( https://www.rfc-editor.org/rfc/rfc5952 ) - IPv6 Address Text Representation
120+
121+ #### Language and Locale
122+ - [ RFC 5646] ( https://www.rfc-editor.org/rfc/rfc5646 ) / [ BCP 47] ( https://www.rfc-editor.org/info/bcp47 ) - Language Tags
123+ - [ ] Language tags (e.g., en-US, zh-Hans)
124+ - [ ] Language subtags
125+ - [ ] Script subtags
126+ - [ ] Region subtags
127+
128+ #### Media Types
129+ - [ RFC 6838] ( https://www.rfc-editor.org/rfc/rfc6838 ) - Media Type Specifications
130+ - [ ] Media types (MIME types)
131+ - [ ] Type/subtype structure
132+ - [ ] Parameters
133+
134+ #### Other IETF Standards
135+ - [ RFC 1321] ( https://www.rfc-editor.org/rfc/rfc1321 ) - MD5 Message-Digest Algorithm
136+ - [ ] MD5 hash format
137+ - [ RFC 3174] ( https://www.rfc-editor.org/rfc/rfc3174 ) - SHA-1
138+ - [ ] SHA-1 hash format
139+ - [ RFC 6234] ( https://www.rfc-editor.org/rfc/rfc6234 ) - SHA-2 family
140+ - [ ] SHA-256 hash format
141+ - [ ] SHA-512 hash format
142+ - [ RFC 4648] ( https://www.rfc-editor.org/rfc/rfc4648 ) - Base16, Base32, Base64 Encodings
143+ - [ ] Base64 encoded strings
144+ - [ ] Base64URL encoded strings
145+ - [ ] Base32 encoded strings
146+
147+ ### ISO Standards (International Organization for Standardization)
148+
149+ #### Date, Time, and Duration
150+ - [ ISO 8601-1:2019] ( https://www.iso.org/standard/70907.html ) - Date and time representations
151+ - [ ] Date formats (YYYY-MM-DD, etc.)
152+ - [ ] Time formats (HH:MM: SS , etc.)
153+ - [ ] DateTime with timezone
154+ - [ ] Week dates
155+ - [ ] Ordinal dates
156+ - [ ] Duration (P notation)
157+ - [ ] Time intervals
158+ - [ ] Recurring time intervals
159+
160+ #### Language and Country Codes
161+ - [ ISO 639-1:2002] ( https://www.iso.org/standard/22109.html ) - Language codes (2-letter)
162+ - [ ] Two-letter language codes (en, es, fr, etc.)
163+ - [ ISO 639-2:1998] ( https://www.iso.org/standard/4767.html ) - Language codes (3-letter)
164+ - [ ] Three-letter language codes
165+ - [ ISO 3166-1] ( https://www.iso.org/iso-3166-country-codes.html ) - Country codes
166+ - [ ] Alpha-2 codes (US, GB, JP, etc.)
167+ - [ ] Alpha-3 codes (USA, GBR, JPN, etc.)
168+ - [ ] Numeric codes
169+ - [ ISO 3166-2] ( https://www.iso.org/standard/72483.html ) - Subdivision codes
170+ - [ ] Country subdivision codes (US-CA, GB-ENG, etc.)
171+
172+ #### Currency and Units
173+ - [ ISO 4217] ( https://www.iso.org/iso-4217-currency-codes.html ) - Currency codes
174+ - [ ] Currency codes (USD, EUR, GBP, etc.)
175+ - [ ] Currency numbers
176+ - ✓ [ ISO 80000-1:2022] ( https://www.iso.org/standard/76921.html ) - Quantities and units
177+ - ✓ Percentage (0-100)
178+ - [ ] Other units
179+
180+ #### Information Technology
181+ - ✓ [ ISO/IEC 2382:2015] ( https://www.iso.org/standard/63598.html ) - Information technology vocabulary
182+ - ✓ Byte (non-negative integer)
183+ - [ ] Bit
184+ - [ ] Kilobyte, Megabyte, Gigabyte, etc.
185+
186+ ### IEEE Standards (Institute of Electrical and Electronics Engineers)
187+
188+ #### POSIX (Portable Operating System Interface)
189+ - ✓ [ IEEE 1003.1 (POSIX.1-2017)] ( https://pubs.opengroup.org/onlinepubs/9699919799/ ) - POSIX.1
190+ - ✓ Absolute paths
191+ - ✓ Relative paths
192+ - ✓ Generic paths
193+ - [ ] File permissions (octal notation)
194+ - [ ] Process IDs
195+ - [ ] User IDs / Group IDs
196+ - [ ] File descriptors
197+ - [ ] Environment variable names
198+ - [ ] Shell command syntax
199+
200+ #### Floating Point
201+ - [ IEEE 754] ( https://standards.ieee.org/standard/754-2019.html ) - Floating-Point Arithmetic
202+ - [ ] Special values (NaN, Infinity, -Infinity)
203+ - [ ] Subnormal numbers
204+
205+ ### IANA Registries (Internet Assigned Numbers Authority)
206+
207+ - [ Media Types] ( https://www.iana.org/assignments/media-types/ )
208+ - [ ] Registered media types
209+ - [ Character Sets] ( https://www.iana.org/assignments/character-sets/ )
210+ - [ ] Character set names
211+ - [ Time Zone Database] ( https://www.iana.org/time-zones )
212+ - [ ] IANA time zone identifiers (America/New_York, etc.)
213+ - [ Port Numbers] ( https://www.iana.org/assignments/service-names-port-numbers/ )
214+ - [ ] Well-known ports (0-1023)
215+ - [ ] Registered ports (1024-49151)
216+ - [ ] Valid port range (0-65535)
217+ - [ HTTP Status Codes] ( https://www.iana.org/assignments/http-status-codes/ )
218+ - [ ] Extended status codes beyond RFC 9110
219+
220+ ### Software Licensing
221+
222+ - [ SPDX] ( https://spdx.org/licenses/ ) - Software Package Data Exchange
223+ - [ ] SPDX license identifiers (MIT, Apache-2.0, GPL-3.0, etc.)
224+ - [ ] SPDX license expressions (MIT OR Apache-2.0)
225+
226+ ### Versioning
227+
228+ - [ Semantic Versioning 2.0.0] ( https://semver.org/ )
229+ - [ ] Semantic version strings (MAJOR.MINOR.PATCH)
230+ - [ ] Pre-release versions
231+ - [ ] Build metadata
232+ - [ ] Version ranges
233+
234+ ### Cryptography
235+
236+ - [ Bitcoin] ( https://bitcoin.org/bitcoin.pdf )
237+ - [ ] Bitcoin addresses
238+ - [ ] Bitcoin transaction hashes
239+ - [ Ethereum] ( https://ethereum.org/ )
240+ - [ ] Ethereum addresses
241+ - [ ] Ethereum transaction hashes
242+
243+ ### Geographic and Geospatial
244+
245+ - [ WGS 84] ( https://en.wikipedia.org/wiki/World_Geodetic_System ) - World Geodetic System
246+ - [ ] Latitude (-90 to 90)
247+ - [ ] Longitude (-180 to 180)
248+ - [ ] Altitude
249+
250+ ### Telecommunications
251+
252+ - [ E.164] ( https://www.itu.int/rec/T-REC-E.164/ ) - International telephone numbers
253+ - [ ] Phone numbers (international format)
254+ - [ ISSN] ( https://www.issn.org/ ) - International Standard Serial Number
255+ - [ ] ISSN format
256+ - [ ISBN] ( https://www.isbn-international.org/ ) - International Standard Book Number
257+ - [ ] ISBN-10
258+ - [ ] ISBN-13
259+
260+ ### Miscellaneous
261+
262+ - [ Cron Expressions] ( https://en.wikipedia.org/wiki/Cron )
263+ - [ ] Cron schedule format
264+ - Credit Cards
265+ - [ ] Credit card numbers (Luhn algorithm)
266+ - [ ] CVV codes
267+ - [ ] Expiration dates
268+ - [ MAC Addresses] ( https://standards.ieee.org/products-programs/regauth/ )
269+ - [ ] MAC address formats (colon, hyphen, dot notation)
270+ - [ VIN] ( https://www.iso.org/standard/52200.html ) - Vehicle Identification Number
271+ - [ ] VIN format (17 characters)
0 commit comments