!!id:"https://tson.io/2026/39/m/core.tn?sha256=4e8d9c43cbbabf6a73548b819ac74e06e18859b573d05ce99988ae9d4d9a562e" !!import:"https://tson.io/2026/39/m/numeric.tn?sha256=dfa66c5d3775a7845776db737f07b16630824f2434f6587aface2f88b77bf0f2" !!import:"https://tson.io/2026/39/m/temporal.tn?sha256=fb4ada8f238de82821e7fcf512c21980a8b73c8df9260cdf295ba0157cc3971e" !!import:"https://tson.io/2026/39/m/net.tn?sha256=371fc20c8628b5461b56a7a28f2559a1cfde4eda718f72d60ceb1b5a007bac06" @doc:""" TSON core — every bundled type in one import (2026 Revision 39 draft). core.tn imports the three data-format libraries, numeric.tn, temporal.tn and net.tn, each of which imports the kernel, meta.tn, alone. A schema importing core therefore has the whole bundled vocabulary, each type under one identity ([TSON-SCHEMA] §2.2.3): the common types at the roots of the kernel and the libraries (`text`, `integer`, `bytes`, `enum`, `set`, `doc`, `number`, `int32`, `date`, `datetime`, `uuid`, `uri`), and the machinery under the maps those documents declare, by path (`meta.record`, `meta.type_ref`, `unicode.text_type`, `numeric.decimal_type`, `temporal.date_type`, `net.uuid_type`). It reserves the map names `meta`, `atom`, `numeric`, `unicode`, `net`, `binary` and `temporal` and every root name of those documents and of this one. A schema that wants only some of the libraries imports those instead. Its own root holds the author annotations, which describe a declaration or a field for its readers and tools and never change what it admits: `@deprecated`, `@title`, `@comment`, `@examples`, `@read_only` and `@write_only`. It declares no namespace of its own. Hash pins here are real digests over the bytes of this copy; see meta.tn's note. References: JSON Schema 2020-12 Meta-data and annotation vocabulary (`title`, `deprecated`, `readOnly`, `writeOnly`, `examples`, `$comment`) """ !schema { @doc:""" Marks a definition or field as deprecated. A bare presence marker like `@atom.numeric`; the reason, where there is one, is `@doc`'s to give. """ deprecated => @meta.annotation void @doc:"Short human-readable name for a definition or field." title => @meta.annotation text @doc:""" A note for a schema's maintainers rather than its readers (JSON Schema's `$comment`): where `@doc` is what a documentation tool shows, `@comment` is what it leaves out. """ comment => @meta.annotation text @doc:""" Example values for a definition or field, each the text a reader is shown: conventionally the value written in TSON notation, so a record's example is a string such as `"{ x: 1 }"`. Nothing parses or checks an example against the type it illustrates; the annotation is documentation only. """ examples => @meta.annotation [text] @doc:""" Marks a field an encoding's consumers may read but not write. A bare presence marker like `@atom.numeric`: absence is the default, so there is no false to write (JSON Schema's `readOnly: false` maps to no annotation). """ read_only => @meta.annotation void @doc:""" Marks a field an encoding's consumers may write but not read. A bare presence marker, on `@read_only`'s terms. """ write_only => @meta.annotation void }