
Hi all, I was asked by Gregory to comment on this as the developer (and a user) of pydantic. From pydantic's point of view it would be best if Annotated could wrap all types, and indeed non-type code. In pydantic, all of the following could be used: class FooBar(BaseModel): a: Annotated[Dict[str, str], Field(...)] b: Annotated[Json[List[int]], Field(...)] = 'Bar' c: Annotated[constr(min_length=2, max_length=10), Field(...)] d: Annotated[ClassVar[int], ...]. # at least in future also with generics class MyGenericModel(GenericModel, Generic[DataT]): a: Annotated[DataT, Field(...)] b: Annotated[Optional[DataT], Field(...)] Pydantic currently wouldn't make use of Annoated in args/kwargs contexts, but IMHO there's no good reason to constrain the use of Annotated unless it makes the implementation significantly easier. I hope that covers what you were asking about Gregory, let me know if you need more details on any of it.