type SchemaLeaf = "copy" | "convert";
export interface SchemaProperty {
  required: boolean;
  schema: Schema;
  derive?: (v: any) => any;
}
interface SchemaObject {
  [property: string]: SchemaProperty;
}
type SchemaArray = [SchemaObject] | [SchemaLeaf];

export type Schema = SchemaLeaf | SchemaArray | SchemaObject;

type SchemaLeaf = "copy" | "convert";
export interface SchemaProperty {
  required: boolean;
  schema: Schema;
  derive?: (v: any) => any; // For client extension results, transports, etc.
}
interface SchemaObject {
  [property: string]: SchemaProperty;
}
type SchemaArray = [SchemaObject] | [SchemaLeaf];

export type Schema = SchemaLeaf | SchemaArray | SchemaObject;

Add a comment to the `derive` declaration with examples.
Add a comment to the `derive` declaration with examples.
