package types

import (
	"gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes"

	"gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
)

// IArchNode -- интерфейс архитектурного узла
type IArchNode interface {
	// Type -- возвращает тип архитектурного узла
	Type() alias.ArchType
	// Id -- возвращает идентификатор архитектурного узла
	Id() alias.ArchId
	// InvarCheck -- проверка инвариантов архитектурного узла
	InvarCheck() ktypes.Option[error]
	// ParentId -- возвращает родительский узел
	ParentId() alias.ArchId
}
