Написать свои Data-классы, создать BlockState
со своими ключами.
p.s. если тебе нужно получить такой-то блок/блоки с определённым Data классом в любой момент времени, то метода вроде "получить все блоки с этим Data классом" не существует.
А если нужно, например, обработать что-то при каком-либо событии с этим блоком, то это легко.
Например "если игрок жмёт ПКМ/ЛКМ по блоку/наступает на блок, и у блока есть такой-то Data класс, то сделать что-то с игроком на основе данных этого Data класса." - это легко.