Type schema based on OpenAPI v3.1 for LLM function calling.

ILlmSchemaV3_1 is a type metadata for LLM (Large Language Model) function calling, based on the OpenAPI v3.1 speicification. This type is not the final type for the LLM function calling, but the intermediate structure for the conversion to the final type of below:

However, the ILlmSchemaV3_1 does not follow the entire specification of the OpenAPI v3.1. It has own specific restrictions and definitions. Here is the list of how ILlmSchemaV3_1 is different with the OpenAPI v3.1 JSON schema.

If compare with the OpenApi.IJsonSchema, the emended JSON schema specification,

For reference, if you've composed the ILlmSchemaV3_1 type with the ILlmSchemaV3_1.IConfig.reference false option (default is false), only the recursived named types would be archived into the ILlmSchemaV3_1.IParameters.$defs, and the others would be ecaped from the ILlmSchemaV3_1.IReference type.

Also, if you've composed the ILlmSchemaV3_1 type with the ILlmSchemaV3_1.IConfig.constraint false option (default false), the ILlmSchemaV3_1 would not compose these properties. Instead, these properties would be written on ILlmSchemaV3_1.__IAttribute.descripotion field like @format uuid case.