Whenever we generate a working API that is not optimal (in ObjC) we should update the `docs/BestPracticesObjC.md` document to explain the situation and provide guidance to get the best ObjC API output.
## Missing .NET features
Unimplemented, but planned, features should throw a `NotImplementedException` with the feature name. The generator will report it as a missing feature that does not require a bug report (and test case).
## Unsupported .NET features
Anything that **cannot** be supported should be added to the `docs/Limitations.md` document.
The tool should issue warnings (which users can turn into errors) when it cannot generate ObjC to match any given .NET code. The warnings **must** be added to the `docs/errors.md` document.