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