OptionaladditionalAdditional properties' info.
The additionalProperties means the type schema info of the additional
properties that are not listed in the properties.
If the value is false, it means that the additional properties are
not specified. Otherwise, if the value is IJsonSchema type, it
means that the additional properties must follow the type schema info.
false: No additional propertiesIJsonSchema: Record<string, T>Properties of the object.
The properties means a list of key-value pairs of the object's
regular properties. The key is the name of the regular property, and
the value is the type schema info.
IMPORTANT: Each property in this object MUST have a detailed description that references and aligns with the description comments from the corresponding database schema column.
If you need additional properties that is represented by dynamic key, you can use the additionalProperties instead.
List of key values of the required properties.
The required means a list of the key values of the required
properties. If some property key is not listed in the required
list, it means that property is optional. Otherwise some property key
exists in the required list, it means that the property must be
filled.
Below is an example of the properties and required.
interface SomeObject {
id: string;
email: string;
name?: string;
}
As you can see, id and email properties are required,
so that they are listed in the required list.
{
"type": "object",
"properties": {
"id": { "type": "string" },
"email": { "type": "string" },
"name": { "type": "string" }
},
"required": ["id", "email"]
}
Discriminator value of the type.
CRITICAL: This MUST be a SINGLE string value, NOT an array. The type field identifies the JSON Schema type and must be exactly one of: "boolean", "integer", "number", "string", "array", "object", or "null".
❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT: type: "string" // For nullable string, use oneOf instead
If you need to express a nullable type (e.g., string | null), you MUST
use the IOneOf structure:
{
"oneOf": [{ "type": "string" }, { "type": "null" }]
}
NEVER use array notation in the type field. The type field is a discriminator that accepts only a single string value.
Optionalx-Target database table that this DTO object represents.
Establishes a direct link between this DTO schema and a specific database table. This mapping is critical for:
Set this to a valid table name when the DTO directly represents or derives from a specific database table:
IUser, IOrder): Map to their primary tableIUser.ISummary): Map to the same table as parentIUser.ICreate): Map to the target tablenullSet this to null when the DTO has no direct database table mapping.
Common cases include:
IDashboardSummary aggregating user, order, and
product statistics)IUser.IRequest, IPageInfo)IRevenueReport, IAnalyticsResult)IPage<T>,
IApiResponse<T>)ICheckoutSession, IPaymentIntent)nullWhen this field is null, the x-autobe-specification field (in
IJsonSchemaDescriptive.IObject) MUST contain detailed
implementation instructions:
SUM, COUNT, AVG, etc.)CRITICAL: When set, the table name MUST be an actually existing model name from the loaded database schema. Never guess or invent schema names. Using non-existent schema names causes compilation failures and pipeline breakdown.
Object type info.