pub type PinId = Id<PinKind>;
pub struct PinId(u32, PhantomData<PinKind>);
0: u32
1: PhantomData<PinKind>