public GetShardIteratorRequest request(String stream, Shard shard) {
        for (Specification specification : specifications) {
            if (specification.matches(shard)) {
                return specification.request(stream, shard);
            }
        }
        return defaultRequest(stream, shard);
    }
@Test
    public void unspecified() {
        assertEquals(
                new GetShardIteratorRequest()
                        .withShardId(SHARD3.getShardId())
                        .withStreamName(STREAM)
                        .withShardIteratorType(ShardIteratorType.AT_SEQUENCE_NUMBER)
                        .withStartingSequenceNumber("1500"),
                iterators.request(STREAM, SHARD3)
        );
    }