playerthree/schema

Bounded, closed-shape schema DSL.

Enum literals and ids remain closed vocabulary. Bounded strings explicitly admit trusted text; their provenance must exclude third-party player text. No arbitrary JSON or unbounded string node exists.

Interfaces

BoolS

Defined in: packages/playerthree/src/schema.ts:45

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:47
treadonly"bool"packages/playerthree/src/schema.ts:46

EnumS

Defined in: packages/playerthree/src/schema.ts:8

Bounded, closed-shape schema DSL.

Enum literals and ids remain closed vocabulary. Bounded strings explicitly admit trusted text; their provenance must exclude third-party player text. No arbitrary JSON or unbounded string node exists.

Type Parameters

Type ParameterDefault type
V extends readonly string[]readonly string[]

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:11
treadonly"enum"packages/playerthree/src/schema.ts:9
valuesreadonlyVpackages/playerthree/src/schema.ts:10

IdS

Defined in: packages/playerthree/src/schema.ts:13

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:16
prefixreadonlystringpackages/playerthree/src/schema.ts:15
treadonly"id"packages/playerthree/src/schema.ts:14

IntS

Defined in: packages/playerthree/src/schema.ts:33

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:37
maxreadonlynumberpackages/playerthree/src/schema.ts:36
minreadonlynumberpackages/playerthree/src/schema.ts:35
treadonly"int"packages/playerthree/src/schema.ts:34

IntsS

Defined in: packages/playerthree/src/schema.ts:26

A flat bounded integer array; no per-item schema is serialized.

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:31
maxreadonlynumberpackages/playerthree/src/schema.ts:30
maxItemsreadonlynumberpackages/playerthree/src/schema.ts:28
minreadonlynumberpackages/playerthree/src/schema.ts:29
treadonly"ints"packages/playerthree/src/schema.ts:27

ListS

Defined in: packages/playerthree/src/schema.ts:49

Type Parameters

Type ParameterDefault type
I extends SchemaSchema

Properties


NumS

Defined in: packages/playerthree/src/schema.ts:39

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:43
maxreadonlynumberpackages/playerthree/src/schema.ts:42
minreadonlynumberpackages/playerthree/src/schema.ts:41
treadonly"num"packages/playerthree/src/schema.ts:40

ObjS

Defined in: packages/playerthree/src/schema.ts:55

Type Parameters

Type ParameterDefault type
F extends FieldsFields

Properties

PropertyModifierTypeDescriptionDefined in
doc?readonlystring-packages/playerthree/src/schema.ts:58
fieldsreadonlyF-packages/playerthree/src/schema.ts:57
merge?readonly"replace"Atomic replacement when this object appears in layered match options.packages/playerthree/src/schema.ts:60
treadonly"obj"-packages/playerthree/src/schema.ts:56

OptS

Defined in: packages/playerthree/src/schema.ts:63

Optional field marker. Only meaningful as a direct child of obj / union variant fields.

Type Parameters

Type ParameterDefault type
I extends SchemaSchema

Properties

PropertyModifierTypeDefined in
itemreadonlyIpackages/playerthree/src/schema.ts:65
treadonly"opt"packages/playerthree/src/schema.ts:64

StrS

Defined in: packages/playerthree/src/schema.ts:19

Trusted text, bounded in Unicode code points (the JSON Schema maxLength unit).

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:23
maxLengthreadonlynumberpackages/playerthree/src/schema.ts:21
pattern?readonlystringpackages/playerthree/src/schema.ts:22
treadonly"str"packages/playerthree/src/schema.ts:20

UnionS

Defined in: packages/playerthree/src/schema.ts:67

Type Parameters

Type ParameterDefault type
Tag extends stringstring
V extends Record<string, Fields>Record<string, Fields>

Properties

PropertyModifierTypeDefined in
doc?readonlystringpackages/playerthree/src/schema.ts:71
treadonly"union"packages/playerthree/src/schema.ts:68
tagreadonlyTagpackages/playerthree/src/schema.ts:69
variantsreadonlyVpackages/playerthree/src/schema.ts:70

Type Aliases

Fields

type Fields = object;

Defined in: packages/playerthree/src/schema.ts:75

Named fields of an object schema or union variant.

Index Signature

[k: string]: Schema

Infer

type Infer<S> = IsAny<S> extends true ? any : S extends EnumS<infer V> ? V[number] : S extends IdS | StrS ? string : S extends IntS | NumS ? number : S extends BoolS ? boolean : S extends IntsS ? number[] : S extends ListS<infer I> ? Infer<I>[] : S extends ObjS<infer F> ? InferFields<F> : S extends OptS<infer I> ? Infer<...> | undefined : S extends UnionS<..., ...> ? ...[...] : never;

Defined in: packages/playerthree/src/schema.ts:91

The TypeScript type of values a schema accepts.

Type Parameters

Type Parameter
S

JsonSchema

type JsonSchema = object;

Defined in: packages/playerthree/src/schema.ts:410

A JSON Schema document as emitted by toJsonSchema (opaque to TypeScript).

Index Signature

[k: string]: unknown

Schema

type Schema = 
  | EnumS
  | IdS
  | StrS
  | IntS
  | IntsS
  | NumS
  | BoolS
  | ListS<any>
  | ObjS<any>
  | OptS<any>
| UnionS<string, any>;

Defined in: packages/playerthree/src/schema.ts:77

Any schema node built with t.


SchemaErrorCode

type SchemaErrorCode = 
  | "type"
  | "enum"
  | "range"
  | "not_integer"
  | "pattern"
  | "too_long"
  | "unknown_field"
  | "missing_field"
  | "tag";

Defined in: packages/playerthree/src/schema.ts:269

Closed set of validation failure codes. Never echoes input.


SchemaPath

type SchemaPath = (string | number)[];

Defined in: packages/playerthree/src/schema.ts:281

Path segments are schema field names (developer-defined) or list indices — never input text.


ValidateResult

type ValidateResult<T> = 
  | {
  ok: true;
  value: T;
}
  | {
  code: SchemaErrorCode;
  ok: false;
  path: SchemaPath;
};

Defined in: packages/playerthree/src/schema.ts:284

Validation result: the value, or a closed error code and the schema path where it failed (never the input).

Type Parameters

Type Parameter
T

Variables

t

const t: object;

Defined in: packages/playerthree/src/schema.ts:210

Schema node constructors. Each validates its own bounds when called, so an unsafe schema fails at definition time.

Type Declaration

NameTypeDefined in
bool()(doc?) => BoolSpackages/playerthree/src/schema.ts:242
enum()(values, doc?) => EnumS<V>packages/playerthree/src/schema.ts:211
id()(prefix, doc?) => IdSpackages/playerthree/src/schema.ts:218
int()( min, max, doc? ) => IntSpackages/playerthree/src/schema.ts:234
ints()( maxItems, min, max, doc? ) => IntsSpackages/playerthree/src/schema.ts:228
list()( item, max, doc? ) => ListS<I>packages/playerthree/src/schema.ts:245
num()( min, max, doc? ) => NumSpackages/playerthree/src/schema.ts:238
obj()( fields, doc?, options? ) => ObjS<F>packages/playerthree/src/schema.ts:249
opt()(item) => OptS<I>packages/playerthree/src/schema.ts:254
str()( maxLength, pattern?, doc? ) => StrSpackages/playerthree/src/schema.ts:222
union()( tag, variants, doc? ) => UnionS<Tag, V>packages/playerthree/src/schema.ts:257

Functions

codePointLength()

function codePointLength(value): number;

Defined in: packages/playerthree/src/schema.ts:123

Counts surrogate pairs once and lone surrogates once, without allocating an array.

Parameters

ParameterType
valuestring

Returns

number


toJsonSchema()

function toJsonSchema(s): JsonSchema;

Defined in: packages/playerthree/src/schema.ts:413

JSON Schema (draft 2020-12 subset) for tool definitions. Only developer-declared text is emitted.

Parameters

ParameterType
sSchema

Returns

JsonSchema


validate()

function validate<S>(schema, value): ValidateResult<Infer<S>>;

Defined in: packages/playerthree/src/schema.ts:399

Strict validation: rejects unknown fields, non-finite numbers, non-plain objects and out-of-bound data.

Type Parameters

Type Parameter
S extends Schema

Parameters

ParameterType
schemaS
valueunknown

Returns

ValidateResult<Infer<S>>