-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Both built-in shape providers (source generator and reflection provider) implement a derivation logic mapping arbitrary .NET types into type shapes of different kinds, for example any type implementing IEnumerable is mapped to IEnumerableTypeShape unless it also implements one of the known dictionary interfaces (IDictionary, IReadOnlyDictionary, IDictionary) in which case it gets mapped to IDictionaryTypeShape.
Both implementations should have identical derivation logics (we have extensive test coverage validating that). We should use those implementations to populate a detailed and well-written specification document in markdown format that contains a section for each of the type shape kinds that lists what types map to it.
The specification should be in markdown format (named specification.md conforming to docfx requirements and be placed inside the docs folder). The main PolyType project page should include a link to that specification page alongside abstractions, shape providers, and API documentation.