Type schema info for the Gemini function calling.

IGeminiSchema is a type metadata for the LLM (Large Language Model) function calling in the Geminimi.

IGeminiSchema basically follows the JSON schema definition of the OpenAPI v3.0 specification; OpenApiV3.IJsonSchema. However, IGeminiSchema cannot understand union and reference types, represented by the oneOf and $ref properties. Also, as OpenAPI v3.0 specification does not support the tuple type, IGeminiSchema does not support the tuple type either.

If compare with OpenApi.IJsonSchema, the emended JSON schema type, these are not supported in the Gemini schema. One thing interesting is, the Gemini does not support the title property, so it would be revealed in the IGeminiSchema.__IAttribute.description property instead.

Also, Gemini has banned below constraint properties. Instead, I'll will fill the IGeminiSchema.__IAttribute.description property with the comment text like "@format uuid".

Specified not only by the official documentation, but also by my experiments. Therefore, its definitions can be inaccurate or be changed in the future. If you find any wrong or outdated definitions, please let me know by issue.

Jeongho Nam - https://github.com/samchon