Skip to content

Commit 3e02550

Browse files
committed
Add Roadmap section
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent 4bf22b1 commit 3e02550

1 file changed

Lines changed: 264 additions & 0 deletions

File tree

README.markdown

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)