Skip to content

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

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.

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 typeIntended valueSample right-hand side
stringTexthello
boolBooleantrue
int32Signed 32-bit integer-42
int64Signed 64-bit integer-9000000000
uint32Unsigned 32-bit integer42
uint64Unsigned 64-bit integer9000000000
decimalDecimal number1234.50
float6464-bit floating-point number0.125
base64Octets encoded as standard Base64SGVsbG8=
durationDurationPT1H30M
dateCalendar date2026-10-24
timeTime of day09:30:00
datetimeDate and time2026-10-24T09:30:00+09:00
uuidUUID550e8400-e29b-41d4-a716-446655440000
ip4IPv4 address192.0.2.10
ip6IPv6 address2001:db8::10
cidr4IPv4 network prefix192.0.2.0/24
cidr6IPv6 network prefix2001:db8::/32
uriURIhttps://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.