public List<Event> log() { return log; }
@Test
    public void truncate_log() {
        assertEquals(0, new History(List.of(), List.of()).log().size());
        assertEquals(1, new History(ImmutableMap.of(), shuffledEvents(1), 2).log().size());
        assertEquals(2, new History(ImmutableMap.of(), shuffledEvents(2), 2).log().size());

        History history = new History(ImmutableMap.of(), shuffledEvents(5), 3);
        assertEquals(3, history.log().size());
        assertEquals("Most recent events are kept",
                     List.of(2L, 3L, 4L),
                     history.log().stream().map(e -> e.at().toEpochMilli()).toList());
    }