Currently we need to put the [Translate] Attribute on both the interface and the types that implement it. Ideally we should only have to put it on the interface and it should be inherited by the types that implement it.
[InterfaceType("Character")]
public interface ICharacter : ISearchResult
{
[UsePaging(typeof(InterfaceType<ICharacter>))]
IReadOnlyList<int> Friends { get; }
}
public class Human : ICharacter
{
[TranslateArray<Episode>("Episodes")] // <- this should not be needed
public IReadOnlyList<Episode> AppearsIn { get; }
}