Ok, how about having a concrete class for each single target as you say, and use `asTF`, `asVertex` and `asIndex` for the advanced use case to convert between them?