requires 'parent', 0;
requires 'curry', 0;
requires 'indirect', 0;
requires "Future", ">= 0.34";
requires 'Mixin::Event::Dispatch', '>= 2.000';
requires "Scalar::Util", ">= 1.47";
requires 'Ref::Util', '>= 0.111';
requires "List::UtilsBy", ">= 0.10";
requires "Log::Any", ">= 1.045";
requires "Log::Any::Adapter", ">= 1.045";
requires 'Syntax::Keyword::Try', '>= 0.04';
requires 'namespace::clean', '>= 0.27';
requires "Variable::Disposition", ">= 0.004";

# Used for transcoding - not essential, but commonly used
recommends 'Encode', '>= 1.98';
recommends 'MIME::Base64', 0;
recommends 'JSON::MaybeXS', 0;

# Not so common
suggests 'JSON::SL', '>= 1.0.6';
suggests 'XML::LibXML::SAX::ChunkParser', '>= 0.00008';

on 'test' => sub {
	requires 'Test::More', '>= 0.98';
	requires 'Test::Deep', '>= 1.124';
	requires 'Test::Fatal', '>= 0.010';
	requires 'Test::Refcount', '>= 0.07';
	requires 'Test::Warnings', '>= 0.024';
	requires 'Test::Files', '>= 0.14';
	requires 'Log::Any::Adapter::TAP', '>= 0.003002';

	recommends 'Test::HexString', '>= 0.03';
};

