requires 'parent', 0;
requires 'curry', '>= 1.001';
requires 'indirect', 0;
requires 'Future', '>= 0.37';
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';
requires 'Encode', '>= 1.98';

# Used for transcoding - not essential, but commonly used
recommends 'MIME::Base64', 0;
recommends 'JSON::MaybeUTF8', '>= 1.000';
recommends 'Text::CSV', 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';
};

