public function getTypedOperationAttribute(string $operationType, string $operationName, string $key, $defaultValue = null, bool $resourceFallback = false)
    {
        switch ($operationType) {
            case OperationType::COLLECTION:
                return $this->getCollectionOperationAttribute($operationName, $key, $defaultValue, $resourceFallback);
            case OperationType::ITEM:
                return $this->getItemOperationAttribute($operationName, $key, $defaultValue, $resourceFallback);
            default:
                return $this->getSubresourceOperationAttribute($operationName, $key, $defaultValue, $resourceFallback);
        }
    }