Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 3.14 KB

type-profile.md

File metadata and controls

41 lines (31 loc) · 3.14 KB

Type profiles and candidate types

The format specification defines type annotation syntax and the conversion and retrieval procedure. Value decoders and profiles assign meanings and conversion rules to type expressions. This page defines the text representation for base64 and lists illustrative candidate type names; it does not define a complete standard type profile. Candidate names follow the lowercase-English convention in the format specification, but they are not thereby standard permitted types.

Back to the documentation · Undecided matters

Base64 text representation

For base64, the text form uses the standard Base64 alphabet and required padding in RFC 4648 section 4, rather than the URL-safe alphabet. Encoded text has no line wrapping, and decoding rejects non-alphabet characters, including whitespace, following the default rules in RFC 4648 sections 3.1–3.3. SGVsbG8= decodes to the five octets spelling Hello in ASCII.

This representation does not make base64 a standard permitted type name or a supported Go sample type. The remaining decisions about type names and profiles are listed in Undecided matters.

Candidate type names and sample values

These names and right-hand-side values are an illustrative candidate set, not a declaration that the core format or the Go sample accepts these types. Except for the base64 text representation described above, the samples do not define the accepted spelling or conversion rules for a type.

Candidate type Intended value Sample right-hand side
string Text hello
bool Boolean true
int32 Signed 32-bit integer -42
int64 Signed 64-bit integer -9000000000
uint32 Unsigned 32-bit integer 42
uint64 Unsigned 64-bit integer 9000000000
decimal Decimal number 1234.50
float64 64-bit floating-point number 0.125
base64 Octets encoded as standard Base64 SGVsbG8=
duration Duration PT1H30M
date Calendar date 2026-10-24
time Time of day 09:30:00
datetime Date and time 2026-10-24T09:30:00+09:00
uuid UUID 550e8400-e29b-41d4-a716-446655440000
ip4 IPv4 address 192.0.2.10
ip6 IPv6 address 2001:db8::10
cidr4 IPv4 network prefix 192.0.2.0/24
cidr6 IPv6 network prefix 2001:db8::/32
uri URI https://example.com/items/42

The type names and examples for IP addresses and network prefixes distinguish IPv4 from IPv6; their complete accepted textual forms and conversion behaviour remain to be specified.

The VS Code editor integration may offer these names as completion and quick-fix suggestions. They remain illustrative, not a standard permitted-type list. The Go sample's DemoProfile also accepts int; that sample-specific name is not added to this candidate set. Editor suggestions do not validate or convert values.