fully type Resolution* classes
[scpubgit/DX.git] / lib / DX / ResolutionStrategy.pm
index 389c406..9deaa85 100644 (file)
@@ -1,13 +1,21 @@
 package DX::ResolutionStrategy;
 
 use DX::Resolution;
+use Types::Standard qw(CodeRef Tuple slurpy);
 use DX::Class;
 
-has action_prototypes => (is => 'ro', required => 1);
+has action_prototypes => (
+  is => 'ro', required => 1,
+  isa => ArrayRef[Tuple[Value, Str, slurpy ArrayRef[Value]]]
+);
 
-has veracity_depends_on_builder => (is => 'ro', required => 1);
+has veracity_depends_on_builder => (
+  is => 'ro', required => 1, isa => CodeRef
+);
 
-has implementation_candidates => (is => 'ro', required => 1);
+has implementation_candidates => (
+  is => 'ro', required => 1, isa => ArrayRef[ArrayRef[ArrayRef[Value]]]
+);
 
 has aperture => (is => 'lazy', builder => sub {
   my ($self) = @_;